寻找一种更好的方法来做到这一点,而不是我习惯的“手动”方法,因为这是一个我必须定期经历的过程。
我有一系列要 ping 的 IP,从10.0.1.15
to 10.0.50.15
。第三个八位位组指的是物理位置,最后一个八位位组指的是该位置处的设备。我需要查看哪些位置没有该设备连接到网络。
我当前的解决方案是:
FOR /L %i IN (1,1,50) DO ping -n 1 10.0.%i.15 >> C:\path\to\output\file.txt
这给了我类似的输出
Pinging 10.0.1.15 with 32 bytes of data:
Reply from 10.0.1.15: bytes=32 time=68ms TTL=255
Ping statistics for 10.0.1.15:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 68ms, Maximum = 68ms, Average = 68ms
Pinging 10.0.2.15 with 32 bytes of data:
Request timed out.
Ping statistics for 10.0.2.15:
Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),
...
我更喜欢输出更像:
2
...
但老实说,任何人类可读的东西都可以——这不会被传送到任何地方。
在本例中,位置 1 有该设备,但位置 2 没有。
目前,我对此的最佳解决方案是手动查看该文件并进行跟踪。我可以用 Python 将一些东西组合在一起,但这听起来比它的价值更麻烦。我知道grep
有一定的能力来显示上下文,但我在 Windows 上,除了基本的 NT CLI 工具之外无法访问任何东西。
有没有什么办法可以发挥杠杆作用findstr
(或等)以获得更容易人类可读的输出?有没有更好的方法,例如电源外壳?