Windows CMD:如何将 运行 程序输出通过管道传输到 FINDSTR 并写入文件
Windows CMD: How to pipe running program output to FINDSTR and write to file
我正在尝试过滤 运行 程序 (ping) 的输出并将结果写入文件。
在以下示例中,ping 程序一直运行到按下 CTRL-C:
ping www.google.com -t | findstr "Reply" >> file.txt
其结果是创建了 'file.txt',但是,内容是 空的。
另一方面,以下代码 没有 管道到 findstr 在被 CTRL-C
中断时工作
ping www.google.com -t >> file.txt
我在这里错过了什么?
控制 findstr 命令的拼写区分大小写您可以使用 /I 来禁用区分大小写并且不要使用 双引号
参数 t 不允许在文件中重定向,因为如果使用带有 Reply 数量的 n 参数文件,管道会在执行 FINDSTR 之前接收结果,等待重放结束以查看结果文件。
ping www.google.com -n 200 | findstr /I reply >> file.txt
当管道命令完成时,文件将被填充。但是 ping -t
永远不会完成。您必须构建自己的循环(这有一些优点...):
:loop
<nul set /p "=%time% " >>file.txt
ping -n 1 www.google.de|find /i "Reply" >>file.txt
ping -n 2 -w 500 localhost >nul
goto :loop
第二个 ping
只是“500 毫秒等待”。
只需尝试 for
循环
@echo off
(for /l %%a in (0) do ping -t -n 1 www.google.com | findstr /i "reply")>file.txt
来自 ping
的文档:
-t: Ping the specified host until stopped.
意味着它正在等待用户输入以完成 ping
命令。
另一方面,管道等待输入,并将收到的任何输入重定向到 file.txt
(在这种情况下没有收到任何输入,因为 ping
正在等待用户输入完成 ping
命令,所以创建了一个空白文件)
您可以先将 ping
重定向到文件:
ping www.google.com -t >> file.txt
然后当你有足够的 ping 时(通过 Ctrl-C),用 findstr
过滤:
findstr "Reply" file.txt >> file2.txt
我正在尝试过滤 运行 程序 (ping) 的输出并将结果写入文件。
在以下示例中,ping 程序一直运行到按下 CTRL-C:
ping www.google.com -t | findstr "Reply" >> file.txt
其结果是创建了 'file.txt',但是,内容是 空的。
另一方面,以下代码 没有 管道到 findstr 在被 CTRL-C
中断时工作ping www.google.com -t >> file.txt
我在这里错过了什么?
控制 findstr 命令的拼写区分大小写您可以使用 /I 来禁用区分大小写并且不要使用 双引号
参数 t 不允许在文件中重定向,因为如果使用带有 Reply 数量的 n 参数文件,管道会在执行 FINDSTR 之前接收结果,等待重放结束以查看结果文件。
ping www.google.com -n 200 | findstr /I reply >> file.txt
当管道命令完成时,文件将被填充。但是 ping -t
永远不会完成。您必须构建自己的循环(这有一些优点...):
:loop
<nul set /p "=%time% " >>file.txt
ping -n 1 www.google.de|find /i "Reply" >>file.txt
ping -n 2 -w 500 localhost >nul
goto :loop
第二个 ping
只是“500 毫秒等待”。
只需尝试 for
循环
@echo off
(for /l %%a in (0) do ping -t -n 1 www.google.com | findstr /i "reply")>file.txt
来自 ping
的文档:
-t: Ping the specified host until stopped.
意味着它正在等待用户输入以完成 ping
命令。
另一方面,管道等待输入,并将收到的任何输入重定向到 file.txt
(在这种情况下没有收到任何输入,因为 ping
正在等待用户输入完成 ping
命令,所以创建了一个空白文件)
您可以先将 ping
重定向到文件:ping www.google.com -t >> file.txt
然后当你有足够的 ping 时(通过 Ctrl-C),用 findstr
过滤:findstr "Reply" file.txt >> file2.txt