【问题标题】:How to force Windows Comand Prompt to flush text output to a file line-by-line如何强制 Windows 命令提示符将文本输出逐行刷新到文件
【发布时间】:2018-11-27 10:24:11
【问题描述】:

我正在尝试在我的 Windows CE5.0 机器命令提示符中记录每个 ping 使用

> ping 192.168.1.1 -t -l 60000 >> ping.txt  

文件以单行输出开始,然后仅在按“ctrl+c”后刷新。

我想知道是否有办法强制它在每个新行中打印。

【问题讨论】:

    标签: file cmd stdout flush


    【解决方案1】:

    我不知道有什么直接的方法可以做到这一点。

    但您可以通过在(无限)循环中执行单个 ping 请求并在循环中写入日志文件来解决此问题,如下所示:

    for /L %I in () do @(timeout 1 > nul & ping 192.168.1.1 -n 1 -l 60000 | find "TTL=" >> "ping.txt")
    

    timeout 1 命令在每次循环迭代中建立一秒延迟以避免 CPU 负载过重,> nul 抑制其控制台输出。

    find 命令用于从肯定回复(如Reply from 192.168.1.1: bytes=60000 time<1ms TTL=128)中过滤出包含TTL 的行。如果需要,您可以将其更改为 findstr /B /C:"Reply from " /C:"Request " /C:"Ping request ",例如,以捕获正面回复以及 Request timed out.Ping request could not find host ... 等负面回复,或者您可以将其完全删除(也是 |)以编写整个ping对文件的响应,包括页眉和页脚。

    【讨论】:

      猜你喜欢
      • 2012-12-25
      • 2014-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      • 2010-11-28
      • 1970-01-01
      • 2016-07-16
      相关资源
      最近更新 更多