2013-01-15 112 views

回答

1

由於定位的m行的FINDSTR命令(也可以是簡單或你需要的那樣複雜)

findstr "search" "fileName.txt" 

,那麼你可以處理使用FOR/F是命令的結果循環。通過使用GOTO,您可以在第一個匹配行之後跳出循環。

for /f "delims=" %%A in ('findstr "search" "fileName.txt"') do (
    echo %%A >>"outFile.txt" 
    goto :break 
) 
:break 

FOR命令是可用於批處理的更復雜命令之一。有很多選擇。您可以通過從命令提示符輸入HELP FORFOR /?來獲得有關該命令的幫助。

「DELIMS =」選項禁止將行解析爲標記。如果沒有這個選項,FOR/F會將每一行分解爲由空格或製表符分隔的標記。分隔符列表可以設置爲其他字符,或者在您的情況下,設置爲無。

我上面給出的代碼將跳過以;開頭的行,因爲FOR/F會跳過以EOL字符開頭的任何行 - 默認爲;。您可以將EOL字符更改爲任何單個字符。但是,如果您不知道您的匹配行可能會以什麼開始,那麼您不知道用於EOL的字符。完全禁用所有令牌解析和EOL行跳過的語法很奇怪:

for /f delims^=^ eol^= %%A in (...) do ... 
+0

dbenham:那似乎很好用!謝謝! Paul Safier –

+0

@PaulSafier - 如果您得到的答案完全解決了您的問題,那麼您應該通過點擊左上角附近的複選標記來接受它。該行動讓其他人知道該問題已得到解答,它將授予您2個聲望點,並將答案海報授予15分。對於給定的問題,只能接受1個答案。一旦你達到15分,你也可以回答問題。一個投票可以給回答者10分。你可以投票選出有用的答案,甚至可以回答其他人的問題。 – dbenham

+0

完成。謝謝。 - Paul Safier。 –

相關問題