2013-03-26 46 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解決方案是一個簡單的方法來消除以空間開始的行。但我假設你想對每行不以空格開頭的行進行額外的處理。