标题: 求一个长PING一台服务器,如果PING不通则触发一个新的BAT
[打印本页]
作者: kal1986
时间: 2008-10-5 18:32
标题: 求一个长PING一台服务器,如果PING不通则触发一个新的BAT
现在情况是我需要一个BAT,完成长PING一台服务器,如果服务器死掉,或者掉电.PING就不通了, 这个BAT的功能就是如果出现5个包PING不通则触发一个新的BAT文件,如何实现呢,请高手帮助
作者: hackate
时间: 2008-10-5 18:44
ping -n 5 192.168.1.1 >nul 2>nul
if %ERRORLEVEL% ==0 (
echo PING得通
) else (
echo PING不通
)
具体代码你再自己去加,
作者: kal1986
时间: 2008-10-5 21:33
Originally posted by hackate at 2008-10-5 18:44:
ping -n 5 192.168.1.1 >nul 2>nul
if %ERRORLEVEL% ==0 (
echo PING得通
) else (
echo PING不通
)
具体代码你再自己去加,
还是不明白.我PING的地址是10.100.86.200 需要长PING~~~如果PING中出现5次无法PING通就说明服务器出现问题.出现问题了就触发123.BAT 不触发就一直PING
作者: HAT
时间: 2008-10-5 21:58
@echo off
:loop
ping -n 1 10.100.86.200 >nul
if "%errorlevel%" neq "0" (
set /a count+=1
)
echo %count%
if "%count%" equ "5" (
set count=0
start 123.bat
)
goto :loop
作者: kal1986
时间: 2008-10-5 22:22
Originally posted by HAT at 2008-10-5 21:58:
[code]@echo off
:loop
ping -n 1 10.100.86.200 >nul
if "%errorlevel%" neq "0" (
set /a count+=1
)
echo %count%
if "%count%" equ "5" (
set count ...
高手你好,现在我测试了你提供的代码~但是我这里运行BAT显示的是ECHO处于关闭状态.不知道是什么原因.能否做到在PING的时候在CMD中显示PING的过程能,就是说PING 对我们是可见的.并且如果启动了新的BAT以后,就不需要再进行PING了
[
Last edited by kal1986 on 2008-10-5 at 22:24 ]
作者: landays
时间: 2008-10-5 22:28
把@echo off
改成@echo 不就好了?
作者: kal1986
时间: 2008-10-5 23:23
Originally posted by landays at 2008-10-5 22:28:
把@echo off
改成@echo 不就好了?
改了 就完全乱了
作者: HAT
时间: 2008-10-6 00:49
代码保存为test.bat
双击运行
@echo off
:loop
ping -n 1 10.100.86.200
if "%errorlevel%" neq "0" (
set /a count+=1
)
if "%count%" equ "5" (
set count=0
start 123.bat
)
goto :loop
作者: kal1986
时间: 2008-10-6 01:08
测试成功 谢谢
作者: kal1986
时间: 2008-10-7 18:17
Originally posted by HAT at 2008-10-6 00:49:
代码保存为test.bat
双击运行
[code]@echo off
:loop
ping -n 1 10.100.86.200
if "%errorlevel%" neq "0" (
set /a count+=1
)
if "%count%" equ "5&quo ...
但是现在我发现了个这样的问题~这个PING 不会清零啊 从上面的逻辑来看~我现在要达到的目的是 连续多少次不通才 启动新的BAT,如果叠加了的话,一天丢几个PING 很快就会触发这个BAT了
[
Last edited by kal1986 on 2008-10-7 at 18:19 ]
作者: HAT
时间: 2008-10-7 20:19
有清零啊
@echo off
:loop
ping -n 1 10.100.86.200
if "%errorlevel%" neq "0" (
set /a count+=1
)
if "%count%" equ "5" (
set count=0
start 123.bat
)
goto :loop
作者: kal1986
时间: 2008-10-8 08:14
Originally posted by HAT at 2008-10-7 20:19:
有清零啊
我是这样理解 这个的,因为如果一次PING不通就SET COUNT叠加1次.FOR LOOP
这不是就记数一次了 然后网络有正常了,又有次丢一个包 再叠加次 ,记数又+=1 1次,直到...这样5次后 清零 触发 新的BAT.........那么就被误报了运行新的BAT 哦祸 系统被切换了,结果这是不需要的.不知道我对这串代码的理解正确么.再次谢谢你
作者: HAT
时间: 2008-10-8 08:32
标题: Re 11楼
Try this:
@echo off
:loop
ping -n 1 10.100.86.200
if "%errorlevel%" neq "0" (
set /a count+=1
) else (
set count=0
)
if "%count%" equ "5" (
set count=0
start 123.bat
)
goto :loop