尋找一個更好的方法來做到這一點,而不是我習慣的「手邊」方法,因爲這是一個必須經常進行的過程。清理批處理ping
我有一個IP範圍ping,從10.0.1.15
到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
(或其他)來獲得更容易的人類可讀輸出嗎?例如有一些更好的方法電源外殼?
所以只列出其測試失敗會是這樣的'平的位置 - n 10.0%。%% I.15 | find/i「TTL」> NUL ||回聲的東西指示位置號碼在這裏?或者在我能指出一個「失敗」測試之前,我是否必須指出一個「通過」測試? –
你可以指定'||如果你願意,沒有必要做任何事情。 – rojo
'TTL expired'錯誤還包括'TTL'字符串。最好是測試TTL =' –