DOS命令及批处理脚本杂记


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


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值