我想对目录中的所有文件扩展名* .LOG执行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 :(得分:0)
您可能想要使用
findstr /R /I /N "ORA-" *.log
您也可以使用
dir /s /b *.log > input.txt
然后使用该文件作为循环的输入
for /f "eol=; tokens=1 delims=|" %%i in (input.txt) do ( ... )
一些评论
您的输出文件也是您正在搜索的同一文件夹中的.log。如果您多次运行该程序,输出文件将显示在您的结果中并加倍您的输出行< / p>
如果你只能使用stdin,请不要使用“type [file] | do_it”:“&lt; [file] do_it”
答案 1 :(得分:0)
有几个人已经给你答案了。要查找并过滤所有Oracle错误到一个日志中,请运行以下命令:
C:\> findstr /ir ora- C:\folder\log\*.log >> C:\folder\log\OracleErrors.txt
其中还包括您询问的每行中的文件名。 如果您只想回显文件名,请单独运行第二个命令:
C:\> findstr /irm ora- C:\folder\log\*.log
所以这些中哪一部分“不起作用”,就像你如此雄辩地说出来的那样?