批处理-ping不通自动重启的应用

公司电脑上装了爱快软路由,然后再接的Tp-link的家用路由当的AP,但另外接入的PCI-E有线网卡似乎不太友好,经常没事就罢工,无奈只能重启解决。起初,用windows自带的远程桌面功能连接到那台主机,然后用shutdown进行重启,后来实在太麻烦,就在系统自带的计划任务里创建了几个定时重启的任务,但由于出现故障的时间和设的定时重启时间不可能吻合,经常会出现自动重启后,没多久赶上故障,导致用户无法接入WIFI。

后来在想,是否能在那台主机上写个批处理的命令,用来判断软路由的WAN口是否能ping通,然后再判断要不要重启。

首先,原开机自启有用VitualBox虚拟运行的爱快软路由系统,开机进入系统后大概1-2分钟可以ping通其WAN口地址,设这个wan-IP为192.168.1.5 。

在windows启动中加入两个批处理命令,一个用来预判断是否wan口已经能够ping通(prep-testing.bat),另一个用来判断ping通后如果不能ping通,则重启;如果能ping通,则继续ping(testing.bat),假设这两个bat文件都在D盘根目录下。

prep-testing.bat

set IP=192.168.1.5
:p
ping -w 1000 -n 3 %IP%|find "TTL"
if %errorlevel%==0 (start "" "D:\testing.bat") else (goto p)

首先,开机的时候,prep-testing.bat因放在启动文件夹里(快捷方式即可),用ping判断192.168.1.5这个IP是否能Ping通(等待爱快软路由的启动),如果没ping通,则返回继续执行 “p” (":p"此时的冒号在批处理为标签的意思,此句不执行,只做标签识别的用处),一旦软路由顺利启动进入系统,则192.168.1.5这个地址可以ping通,那么执行第一句start "" "D:\testing.bat"。(博主并不知道,start 后为什么要先加一对空引号,批处理也没正经学过。。只是搜start的用法,是这么用的。。)


testing.bat

set IP=192.168.1.5
:p
ping -w 1000 -n 3 %IP%|find "TTL"
if %errorlevel%==0 goto p
if %errorlevel%==1 goto reboot
:reboot
shutdown /r /f /t 180

此时,成功启动testing.bat后,一旦软路由的wan口不能ping通,则进入 :reboot语句,并延时3分钟关机(180);如果一直能ping通,则执行:p语句,继续ping。





你可能感兴趣的:(批处理,爱快,软路由,DOS,windows)