批处理 PING某个IP如果ping不通就执行文件

win7环境下
求个批处理PING某个IP如果ping不通就执行文件
PING通时不执行任何操作,但是要一直打印信息,一直打印ping的信息 如果能循环那就更好,比如 ping 通是 不做任何操作,ping不通是 调用另一个批处理 或者 打开一个软件,等网络恢复或者其它原因恢复正常后,又能ping通了 再次调用另一个批处理,这样循环的,在此谢谢大家了,有急用。
如果还能再加上 通过延长判断那就更好了,意思就是 可以ping通 但是延迟高于设定的值时 一样调用另一个批处理 其实我就是想保证网络通畅,因为公司有双线

@echo off
rem 持续不断ping一个指定ip并根据网络通断情况运行不同程序
set #=Any question&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$% %z%
cd /d "%~dp0"
set ip=x.x.x.x
set "logfile=xxx.log"
set "f="
:loop
cls
ping -w 10 -n 2 %ip%|>nul find /i "ttl="&&(
    if defined f (
        >>"%logfile%" echo;online at %date% %time%
        start "" "D:\xxx\程序1.exe"
    )
    echo;OK
    set "f="
)||(
    if not defined f (
        >>"%logfile%" echo;offline at %date% %time%
        start "" "D:\xxx\程序2.exe"
    )
    echo;NO
    set f=1
)
echo;%#% +%$%%$% %z%
if exist "%windir%\System32\timeout.exe" (
    timeout /t 2 /nobreak
) else (>nul ping /n 2 0)
goto loop
pause
exit

追问

哇!! 没错了,这个就是我想要的效果了!!!! 真的是太感谢你了!!!! 其实我用这个批出你 是想做双线切换,如果其中一条断网了,就切换到另外一条网线,然后写永久静态路由表,等到上一条网线通了,在次覆盖永久静态路由器,我还想请教你下,毕竟有时候网络通了,但是延迟有点严重的话,也是会导致上网体验的,你提供的批处理代码,有能实现到ping值 时间延迟大于设定值的时候一样执行切换线路,重写永久路由表。在此感谢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-09-02
@ECHO OFF
:a
ping -n 31 127.1>nul
SET /a n=0
FOR /l %%i in (1,1,4) do (
ping -n 1 192.168.0.245>nul
if %errorlevel% EQU 0 (SET /a n+=1)
)
IF %n% EQU 4 (START start.bat&GOTO a) else (GOTO a)
PAUSE<p>30秒检测一次. </p>追问

这个无法在黑色框框里面 显示ping的信息, 我想让这个批处理 打开后, ping通的情况下,一直显示ping通的信息,不通的话,就显示 请求超时 然后调用另外一个批处理

本回答被网友采纳
相似回答