疫情期间需要远程访问电脑进行工作,实验室电脑一旦出现网络问题就只能求助老师到现场重连WIFI。为了监测网络状态,并在断网时能够及时自动重新连回实验室路由器,编写了以下脚本。

获取目标WIFI的ssid

首先使用如下命令查看周围的WIFI

netsh wlan show networks mode=bssid

然后查看已经连接过WIFI的配置文件

netsh wlan show profiles

记下目标WIFI的名称与ssid,应该是相同的,不能记错,否则断开后程序再也无法连接。

实际上,连接WIFI的主要命令只有两句

# XXX按目标WIFI填写
netsh wlan disconnect
netsh wlan connect ssid=XXX name=XXX

Windows批处理脚本

此脚本的内容为每十分钟检测电脑与百度和大连理工大学网信中心之间的连接性,在确认断连后执行上面的重连命令。202.118.66.6为大连理工大学网信中心DNS服务器IP,非大连理工大学校园网环境无法使用

@echo off
echo WIFI自动重连服务正在进行中.......
echo 停止服务请按 Ctrl+C
:begin
echo %date% %time%
ping baidu.com
rem echo %errorlevel%
if %errorlevel%==1 goto ping2
goto loop
 
:ping2
ping 202.118.66.6
rem echo %errorlevel%
if %errorlevel%==1 goto reconnect
goto loop

:reconnect
echo %date% %time% 网络主动断开
netsh wlan disconnect
echo %date% %time% 正在重新连接中....
netsh wlan connect ssid=MICCAI_5G name=MICCAI_5G
echo %date% %time% 已发送连接请求....ssid=MICCAI_5G
goto loop
 
:loop
timeout 600
goto begin

总结

脚本已经部署运行,还未有机会触发重连功能。

除了监测与互联网的连接性外,还可以采取每日定时断开WIFI重新连接的方法,或者在Windows系统的计划任务程序功能中设置WIFI状态触发等方式。