Batch Script - Ping Address - Write to file if failure

19,576

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
Share:
19,576
adam
Author by

adam

I am a Software Engineer with 11 years of professional experience. I work with ASP.NET, C# & VB.NET, JS/JQuery and SQL on a daily basis. I am on stackoverflow to grow and learn as a professional developer give back to the community in my free time

Updated on June 04, 2022

Comments

  • adam
    adam almost 2 years

    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