一 182009
假设待处理的为1.txt,处理后的为2.txt,代码如下;
[code=html]
@echo off
cd.>en1.txt
for /f "delims=" %%i in (1.txt) do >>2.txt echo %%i
start en1.txt[/code]
简述下delims的作用,定义其后的字符为分隔符,上面的代码”delims=”就是定义空行为分隔符,所以除了空行之外的内容都被写入2.txt了。
顺路说下eol的用法
eol的用法是忽略其后定义的字符打头的行,如:eol=;的意思就是忽略以分号打头的行,不处理该行,类似于自定义的注释。
如果有一文本文件test.txt内容如下:
aaaa bbbb cccc dddd
则用下面的语句
[code=html]
for /f "tokens=1,2 dellims= " %%i in (test.txt) do (echo %%i)
[/code]
则%%i=aaaa %%j=bbbb (因为这里是以空格作为分隔符的,因该行被空格分成4段,所以tokens=1,2的意思就是取第一二两段,分别对应%%i和%%j两个变量。
One Response to “批处理删除文本中的空行”
Sorry, the comment form is closed at this time.
> 上面的代码"delims="就是定义空行为分隔符
这个解释不对。正确的解释是:for /f 会跳过空白行。for /? 里有说。
这篇日志是 2009-1-18 发的,至今有半年了,可能博主现在已经知道了吧[GRAVATAR=http://www.birdol.com/]acb31bc1883ad280a90d8044f61b3009[/GRAVATAR]