我需要在Windows上将ping统计信息记录为表格格式。
C:\Users\hsangal>ping localhost -t -n 2
Pinging TechBeamers.local [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 2, Received = 2, Lost = 0 (0% loss)
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
我想使用Windows批处理脚本来寻找专家的一些主导。我希望以表格格式记录的数据是下面突出显示的ping命令输出的一部分:
Packets: Sent = 2, Received = 2, Lost = 0 (0% loss)
答案 0 :(得分:0)
如果您使用Powershell Test-Connection命令
Test-Connection localhost
结果采用如下表格格式:
如果您想丢失丢失的数据包,可以执行以下操作。假设您想查看5个ping中有多少丢失的数据包:
$pingCount = 5
$x = Test-Connection localhost -count $pingCount
$lostPackets = $pingCount - $x.count
答案 1 :(得分:0)
如果您要编写脚本并希望格式化输出,则可能需要考虑使用Powershell Test-Connection。它有更多选项来格式化输出。
多输出,例如: C:GT;测试连接www.google.co.za,www.yahoo.com
列选择和导出只是其中的一部分功能。此链接提供了一个很好的概述:https://technet.microsoft.com/en-us/library/hh849808.aspx
答案 2 :(得分:0)
您可以使用find
获取仅包含感兴趣信息的行,例如:
ping localhost -n 2 | find "Packets:"
这只返回Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),
行
然后你将这样的for /F
语句包裹起来:
for /F "tokens=3,5,7,8 delims=,=() " %I in ('ping localhost -n 2 ^| find "Packets:"') do echo %I;%J;%K;%L
输出将是这个(发送的数据包;收到的数据包;丢失的数据包;%丢失):
2;2;0;0%
当然,您可以指定(a);
以外的分隔符(只需在最终的echo
语句中进行交换)。
注意上述代码只有在直接输入命令提示符时才有效。如果要在批处理文件中使用它,请将变量%I
等替换为%%I
。
注意:当您提供-t
切换时,ping
命令行中的-n
开关会被忽略。