多くの IP アドレスに ping を実行するスクリプトを作成したいと考えています。しかし、エラーレベルは使いたくありません。
各 IP アドレスに 5 回 ping を実行し、結果を表示したい:
- 5 パケットが失われた場合、エコー %ip - DOWN を表示したい
- 3 つのパケットが失われた場合、エコーを表示したい %ip - 3 lost
- 等...
だから私はこの行から変数で「失われたパケット」を取り戻したい:
"パケット: 送信 = 4、受信 = 4、損失 = 0 (損失 0%)
これは私のコードですが、これは機能しません。
echo off
set perte=0
set servers=servers.txt
for /f %%i in (%servers%) do call :testping %%i
goto:eof
:testping
FOR /f "tokens=3 delims==" %%a IN (' ping -n 5 %1 ^|find "lost"')
DO (set perte=%%b)
if %perte%==1 echo %1 lost 1 ping
if %perte%==2 echo %1 lost 2 ping
if %perte%==3 echo %1 lost 3 ping
if %perte%==4 echo %1 lost 4 ping
if %perte%==5 echo %1 DOWN
if %perte%==0 echo %1 UP
goto:eof