2011-07-13 95 views
0

我想對目錄中的所有文件擴展名* .LOG執行FIND命令。我怎樣才能實現它?下面是我到目前爲止,但它不工作,我不知道問題在哪裏。在DOS FOR循環中執行FIND

for /R C:\folder\log %%i IN (*.LOG) DO (
TYPE %%i | find /I /N "ORA-" >> C:\folder\log\Errorfound.log 
ECHO %%i 
exit 
) 
+0

你怎麼可以創建一個名稱超過8 + 3個字符的文件? – progo

+0

找到接受通配符;' 'find/I/N「ORA-」* .log >> C:\ folder \ log \ Errorfound.log' –

+0

嗨Alex。這不起作用。如果你已經注意到,我已經有一個%%我在其中解析文件名。 – cooldude

回答

0

你可能想使用

findstr /R /I /N "ORA-" *.log 

你也使用

dir /s /b *.log > input.txt 

,然後使用該文件作爲輸入你的循環

for /f "eol=; tokens=1 delims=|" %%i in (input.txt) do (...) 

一些言論

  • 輸出文件也是,你在搜索同一個文件夾日誌。如果你運行該程序多次,輸出文件將在搜索結果中顯示出來,並增加一倍,你的輸出線

  • 請勿使用「type [file] | do_it」如果你可以只使用標準輸入:‘< [文件] do_it’

+0

hi pforret,我希望打印與搜索字符串匹配的文件名。我曾嘗試使用/ M,但沒有奏效。 – cooldude

0

有幾個人已經給你答案要找到所有的Oracle錯誤過濾到一個日誌,運行此命令:

C:\> findstr /ir ora- C:\folder\log\*.log >> C:\folder\log\OracleErrors.txt 

其中還包括在每一行中的文件名,你問 如果你只是想呼應的文件名,單獨運行這第二個命令:

C:\> findstr /irm ora- C:\folder\log\*.log 

因此,你如此雄辯地說明了哪些部分「不起作用」?