首页 > 其他 > 详细

DOS命令及批处理脚本杂记

时间:2014-02-21 03:26:32      阅读:315      评论:0      收藏:0      [点我收藏+]


1. 如何实现echo文本到文件中不换行

方法是,不用echo命令,而是用如下命令。

例如,打印hello world到dest.txt中。分两次打印,每次一个单词。

>dest.txt set/p=hello<nul

>>dest.txt set/p= world<nul


2. 文本文件所有行合并成一行,用#分隔。


@echo off
del  dest.txt
for /f "delims=" %%i in (src.txt) do >>dest.txt set/p=%%i#<nul

注意,如果是在批处理文件中使用此代码,需要将 %i 换成 %%i


3.  字符替换

a)批处理实现

如下批处理代码,可以实现将src.txt中的.c替换为.o,另存到dst.txt中。

setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (src.txt) do (
set var=%%i
set "var=!var:.c=.o!"
echo !var!>>dst.txt
)


b) 使用sed完成。

sed "s/\.c/\.d/g" src.txt > dst.txt

windows下的sed工具从下面的软件包中将sed.exe拷出来即是。另外,还有grep、awk,都可以拷出来用。

https://sourceforge.net/projects/win-bash/files/shell-complete/latest/


4. 生成makefile依赖规则

/* 先生成c文件列表,去掉.c */

@echo off
dir src /B > c:\src1.txt
tools\sed "s/\.c//g" c:\src1.txt  > c:\src.txt

/* 生成makefile规则 */
echo #gen_rules > c:\dest.txt
for /f  "delims=  " %%i in (c:\src.txt) do (
echo %%i
echo #rule begin >>c:\dest.txt
>>c:\dest.txt set/p=${OBJ_DIR}\<nul
>>c:\dest.txt set/p=%%i<nul
>>c:\dest.txt set/p=.o : %%i<nul
echo .c>>c:\dest.txt
type tools\aaa.txt >>c:\dest.txt
)


echo c:\dest.txt


DOS命令及批处理脚本杂记

原文:http://blog.csdn.net/crazycoder8848/article/details/19547597

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!