在 DOS FOR 循环中执行 FIND

发布于 2024-11-19 14:16:25 字数 231 浏览 4 评论 0原文

我想对目录中所有扩展名为 *.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
)

I want to perform a FIND command for all the file extension *.LOG in a directory. How can I achieve it? The below is what I have so far, but it is not working and I do not know where's the problem.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

镜花水月 2024-11-26 14:16:25

您可能想要使用

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

您也可以使用

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

然后使用该文件作为循环的输入

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

一些备注

  • 您的输出文件也是您正在搜索的同一文件夹中的.log。如果您多次运行该程序,输出文件将显示在您的结果中,并使输出行数加倍

  • 如果您只能使用标准输入,请不要使用“type [file] | do_it”:“< [file] do_it”

You probably want to use

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

You could also use

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

And then use that file as input for your loop

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

Some remarks

  • your output file is also a .log in the same folder that you're searching in. If you run the program multiple times, the output file will show up in your results and double your # of output lines

  • don't use "type [file] | do_it" if you can just use stdin: "< [file] do_it"

戏剧牡丹亭 2024-11-26 14:16:25

有几个人已经给了你答案。要查找所有 Oracle 错误并将其过滤到一个日志中,请运行以下命令:

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

该命令还包括您所要求的每一行中的文件名。
如果您只想回显文件名,请单独运行第二个命令:

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

那么,正如您雄辩地说的那样,其中哪一部分“不起作用”?

Several people have already given you the answer. To find and filter all Oracle errors into one log, run this command:

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

which also includes the filenames in every line as you asked.
If you only want to echo the filenames, run this second command separately:

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

So which part of these is "not working" as you so eloquently put it?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文