想一直ping一个IP地址,不通不提示,通了弹框提醒,功能已经实现了,只是不能循环太多次
——————————————————————————————————
@echo off&title 正在持续监视网络状态……
:check
setlocal enabledelayedexpansion
set num=0
echo 正在监测中……
for /f "delims=" %%a in ('ping -n 1 1.2.3.4^|find "TTL"') do (
set /a num+=1
)
if %num% geq 1 (goto ok) else (goto check)
:ok
cls
echo 正在检查网络状态……
echo 网络已恢复,本窗口将自动关闭。
if errorlevel 0 set msg=网络已恢复!
mshta VBScript:Msgbox("%msg%",vbSystemModal,"提示")(close)
exit
———————————————————————————————————
经查询是setlocal 最多递归 32 层,超过此限制则报错,据说要及时endlocal,问题是怎么修改才能让他无限循环下去直至ping通为止呢?
——————————————————————————————————
@echo off&title 正在持续监视网络状态……
:check
setlocal enabledelayedexpansion
set num=0
echo 正在监测中……
for /f "delims=" %%a in ('ping -n 1 1.2.3.4^|find "TTL"') do (
set /a num+=1
)
if %num% geq 1 (goto ok) else (goto check)
:ok
cls
echo 正在检查网络状态……
echo 网络已恢复,本窗口将自动关闭。
if errorlevel 0 set msg=网络已恢复!
mshta VBScript:Msgbox("%msg%",vbSystemModal,"提示")(close)
exit
———————————————————————————————————
经查询是setlocal 最多递归 32 层,超过此限制则报错,据说要及时endlocal,问题是怎么修改才能让他无限循环下去直至ping通为止呢?