Batch Script - Ping Address - Write to file if failure

余生长醉 提交于 2020-01-01 18:59:14

问题


I want to ping an IP address every 5 seconds.

If the ping fails, write the date and time to a file.

Here is my non-working attempt... the loop works as intended, but I can't get it to write to a file if the ping fails.

@ECHO OFF
set IPADDRESS=172.30.1.36
set INTERVAL=5
:PINGINTERVAL

ping %IPADDRESS% -n 1
if errorlevel 1 echo %date% %time% >> failurelog.txt

timeout %INTERVAL%
GOTO PINGINTERVAL

回答1:


In ipv4, ping command only raises errorlevel if there are packets lost. But in you are pinging a machine in your same subnet, you get no packets lost.

The easier way to test for ping success is to test for the "TTL=" string in the output of the ping

ping -n 1 %ipaddress% | find "TTL=" > nul
if errorlevel 1 echo %date% %time% >> failurelog.txt


来源:https://stackoverflow.com/questions/22203587/batch-script-ping-address-write-to-file-if-failure

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!