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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批处理 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值 时间延迟大于设定值的时候一样执行切换线路,重写永久路由表。在此感谢

参考技术A @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通的信息,不通的话,就显示 请求超时 然后调用另外一个批处理

ping不通localhost但是可以ping通ip地址

进到目录:/ect/

找到hosts文件,为:hosts.txt,去掉后缀txt,就可以ping通了

(base) localhost:~ ligaijiang$ ping localhost
ping: cannot resolve localhost: Unknown host
(base) localhost:~ ligaijiang$ ncat 172.31.50.245 9999
Hello I am William‘s server~
Hello I am William‘s client~
bye~


Ncat: Broken pipe.
(base) localhost:~ ligaijiang$ 
(base) localhost:~ ligaijiang$ ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.063 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.074 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.065 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.204 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.073 ms
^C
--- localhost ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.063/0.096/0.204/0.054 ms
(base) localhost:~ ligaijiang$ 

 

以上是关于批处理 PING某个IP如果ping不通就执行文件的主要内容,如果未能解决你的问题,请参考以下文章

windows下批处理记录ping不通的日志

如何把ping多个ip地址的结果保存在一个文件里

为啥我可以正常上网,却ping不通自己的外网IP呢

ping IP通 ping 主机名不通 如何解决?

需要一个批处理:一直ping一个ip地址,并且把ping的记过写入文本日志文件。且记录下每个ping不通的时间

ip不通有哪些原因?