Ping 日志文件结果拆分到第二行

Ping 日志文件结果拆分到第二行

我正在尝试持续 ping 一个目的地,比如 google.co.uk,以确定我所在位置的互联网是否可靠。我运行这个 ping 测试大约一个月,以便很好地了解在一天中互联网流量最繁忙的时段,上午 6 点到 10 点和下午 4 点到 7 点之间的互联网是否适合传输实时音频。

我收到一个烦人的日志文件...:

使用我在 bat 文件中的代码:

FOR /f "tokens=1-8 delims=:./ " %%G IN ("%date%_%time%") DO (SET datetime=%%G%%H%%I_%%J_%%K)

ping google.co.uk -t |find /v ""|cmd /q /v:on /c "for /l %%a in (0) do (set "data="&set /p "data="&if defined data echo(!time! !data!)" >> D:\filename_%time:~0,2%%time:~3,2%-%date:~-10,2%%date:~3,2%%date:~-4,4%.txt'

它正在生产:

18:23:07.24 Reply from 216.58.198.227: bytes=32 time 18:23:07.24 =12ms TTL=54 18:23:08.24 Reply from 216.58.198.227: bytes=32 time 18:23:08.24 =12ms TTL=54 18:23:09.24 Reply from 216.58.198.227: bytes=32 time 18:23:09.24 =12ms TTL=54

一个结果被分成两行...我做错了什么?有解决办法吗?

提前致谢。

答案1

我使用以下批处理文件出于类似目的:

@echo off

set HostToPing="google.com"

:loop
set datetime=%date% %time%
for /f "tokens=9" %%g in ('ping %HostToPing% ^| find "Average ="') do echo %datetime% %%g >>ping_times.txt
timeout /t 120
goto loop

答案2

这里。此行为是由同步问题引起的。set /p管道右侧的从输出读取数据的ping开始读取操作,而 正在ping写入但仍未发送回车符。

但是,指示答案中的代码(保持对单个命名机器的连续 ping)只有当您想保持 ping 对单个精确机器运行时才有意义,避免任何额外的名称解析、循环 DNS 等,只是一直对单个机器进行 ping 操作。

但是,如果如上所述,您想测试互联网连接,而不是目标机器,那么一个简单的批处理文件(例如 moonpoint 的回答) 是一个更好的选择。

相关内容