【问题标题】:Batch Script - Ping Address - Write to file if failure批处理脚本 - Ping 地址 - 如果失败则写入文件
【发布时间】:2014-04-07 20:31:42
【问题描述】:

我想每 5 秒 ping 一次 IP 地址。

如果 ping 失败,将日期和时间写入文件。

这是我的非工作尝试...循环按预期工作,但如果 ping 失败,我无法将其写入文件。

@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

【问题讨论】:

    标签: loops batch-file ping writetofile


    【解决方案1】:

    在 ipv4 中,ping 命令仅在有数据包丢失时才会提高错误级别。但是在您对同一子网中的机器执行 ping 操作时,您不会丢失任何数据包。

    测试 ping 成功的更简单方法是测试 ping 输出中的“TTL=”字符串

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

    【讨论】:

      【解决方案2】:

      这将无间隔地 ping,直到连接丢失。当它这样做时,它会将失败的 ping“时间和日期”记录到桌面的文件中。然后,它会在 1 秒内再次尝试 ping,以此类推,直到重新建立连接,此时它停止,直到错过下一次 ping。复制代码,更改“设置 IPADDRESS”,然后保存为 .bat 文件。祝你好运

      @ECHO OFF
      set IPADDRESS=172.16.100.30
      set INTERVAL=1
      :PINGINTERVAL
      
      ping -n 1 %ipaddress% | find "TTL=" >nul
      
      if errorlevel 1 (
      
      echo %date% %time% >> C:\Users\%username%\Desktop\failping.txt
      echo %date% %time%
      timeout %INTERVAL% >nul
      )
      
      GOTO PINGINTERVAL
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多