批处理/ cmd:将ping日志保存到文件并在之后获取摘要段落

时间:2017-11-21 16:48:32

标签: windows batch-file cmd ping

我正在尝试使用ping来监控我的网络连接,并观察连接丢失,数据包丢失,延迟峰值等等。我有一个批处理文件,每秒ping谷歌并将结果记录到文件:

@echo off
    ping -t www.google.com|cmd /q /v /c "(pause&pause)>nul & for /l %%a in () do (set /p "data=" && echo(!time! !data!)&ping -n 2 localhost>nul" > ping_logs_google.txt

我得到这样的输出:

16:36:50.47 Pinging www.google.com [209.85.202.106] with 32 bytes of data:
16:36:51.50 Reply from 209.85.202.106: bytes=32 time=31ms TTL=47
16:36:52.52 Reply from 209.85.202.106: bytes=32 time=31ms TTL=47
16:36:53.54 Reply from 209.85.202.106: bytes=32 time=30ms TTL=47
16:36:54.58 Reply from 209.85.202.106: bytes=32 time=29ms TTL=47
16:36:55.61 Reply from 209.85.202.106: bytes=32 time=32ms TTL=47
16:36:56.64 Reply from 209.85.202.106: bytes=32 time=32ms TTL=47

..等等。但是,当我按下Ctrl-C或其他任何内容来停止任务时,我希望最后得到摘要段落。看起来像这样的人:

Ping statistics for 209.85.202.106:
    Packets: Sent = 9, Received = 9, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 29ms, Maximum = 34ms, Average = 30ms
Control-C
^C

现在,当我在命令窗口中运行“ping -t www.google.com”后按Ctrl-C时,这确实有效 - 当我从批处理文件运行它时,它不起作用。我如何做到这一点,以便在我完成批处理文件时最后得到摘要段落?

1 个答案:

答案 0 :(得分:0)

不是使用 -t 连续运行,而是替换为“ -n 100 ”,其中“100”是它将ping的次数(如果你是1000,则为1000)喜欢)。这将在输出文件的末尾以与在命令窗口中相同的方式提供摘要。但是,您需要删除任何暂停等等,只是它会被删除。