2013-03-26 41 views
0

预先感谢您的宝贵意见 通过一个batch文件,我想read line by line a text file除了那些先从空间。提取线文件

我曾尝试这样的:

FOR/F “EOL = ^””“%%中的x(file.txt的)做回声。 %% x> out 我所做的也是从空格开始读取文件行。

我还试图这样: FOR/F “令牌= *” %%一个中(“查找/ V ^”,”%1' )做( 回波%%一个 暂停 控制台输出是空的。

假设我的文件看起来像这样的:

画点什么

* ** * ** * STEP 1 * ** * ****

绘制别的东西

===================== ======= ...............................

对于这个例子,我必须连续读取一行

绘制东西

画别的东西

任何帮助!

回答

1

哦,那简单!

findstr /v /b /c:" " <file.txt 

发现线EXCEPT/v/b开始文本字符串" "/c:" "

看到从提示docco findstr /? ...

+0

+1令人敬畏的解释 – 2013-03-26 13:40:04

+0

奇妙的工作!我忘记了/ b。非常感谢Peter – tamo 2013-03-26 13:43:30

0

你找到了正确的FOR/F选项,但未能找到正确的用法。所有以EOL字符开头的行都被跳过,并且EOL=之后的下一个字符总是EOL字符。你只需要一个平等后的空间。

您还想保留整条线,因此您需要将DELIMS设置为无。

for /f "eol= delims=" %%x in (file.txt) do echo. %%x>out 

彼得赖特的FINDSTR解决方案是一个简单的方法来消除以空间开始的行。但我假设你想对每行不以空格开头的行进行额外的处理。