【问题标题】: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