Windows 自动连接wifi脚本

LG5 2023-11-8 167 11/8

一、简述

记-使用bat脚本实现自动连接wifi(wifi是已经连接过的)。

使用场景1:需要连接设备的wifi热点进行调试设备并获取设备的相关信息,设备是会定时重启的,此时需要自动连接上设备的wifi,但发现系统自带的自动连接热点功能不靠谱,所以需要使用bat批处理脚本进行定时检测是否已经连接上wifi并自动重连设备wifi。

使用场景2:测试仪器wifi热点的稳定行,wifi连接和断开wifi测试。

使用场景3:需要保持PC上位机与设备的wifi连接

注1:该脚本使用前提是已经连接过WiFi,即电脑已经保存了要连接的热点的相关信息(包括密码,没有连接过的需要自己添加配置文件)

注2:有的系统需要以管理员权限执行该脚本,此时日志默认保存目录不是当前路径,可以直接指定set log_file=D:\wifi.log

测试脚本打包:外链:https://wwa.lanzoui.com/b0c9qo3vg 密码:8lq8  auto_connect_wifi WLAN-mywifi2

二、测试脚本

@echo off
rem @file:auto_connect_wifi.bat
rem @author:Genven_Liang
rem @date:2021.02.05
rem @note:for auto connect wifi
 
rem 要连接的wifi名称
set wifi_name=mywifi
set log_file=wifi.log
set try_cnt=1
 
rem 如果有参数1,就将参数1指定为wifi名称
if [%1] == [] (echo default_wifi>nul) || (
	set wifi_name=%1
)
 
echo [%date% %time%] Start connect wifi:%wifi_name% >>%log_file%
 
rem 主循环
:mainloop
	(netsh WLAN show interfaces | findStr %wifi_name% >nul && ( 
		echo already connected.
	)) || (
		set /a try_cnt+=1
		echo [%date% %time%] try to connect...[%try_cnt%]
		echo [%date% %time%] try to connect...[%try_cnt%] >>%log_file%
		netsh wlan connect ssid=%wifi_name% name=%wifi_name% >>%log_file%
	)
 
	choice /t 5 /d y /n >nul
 
goto mainloop

三、测试效果

Windows 自动连接wifi脚本

四、总结

4.1 @echo off 表示关闭回显,即不显示执行的命令本身,只显示执行命令的输出信息。

4.2 rem 开头的是注释

4.3 %date%表示当前日期,%time%表示当前时间

Windows 自动连接wifi脚本

4.4 获取附近wifi信息:netsh wlan show networks mode=bssid

Windows 自动连接wifi脚本

4.5 获取当前连接的wifi名称:netsh WLAN show interfaces

Windows 自动连接wifi脚本

可以使用findStr进一步提取信息

4.6 连接指定wifi:netsh wlan connect ssid=mywifi name=mywifi   (需要是已经连接过的,如果没有连接过的,需要添加一份xml配置)

Windows 自动连接wifi脚本

4.7 断开当前WiFi:netsh wlan disconnect

Windows 自动连接wifi脚本

4.8 简单实现5秒延时:choice /t 5 /d y /n >nul

还可以使用timeout /t 3 /nobreak

还可以使用ping -n 5 www.xxx.com

Windows 自动连接wifi脚本

4.9 查看已连接的wifi:netsh wlan show profiles

Windows 自动连接wifi脚本

4.10 查看mywifi的相关信息:netsh wlan show profile name=mywifi key=clear

Windows 自动连接wifi脚本

五、连接未连接过的wifi,添加xml配置:

1、查看已经连接的wifi
netsh wlan show profiles
 
2、导出wifi名称为mywifi的配置文件(随便自己找个连接过的wifi就行了), 保存路径是C:\Users\Liang\Desktop,文件名格式为"Wlan-wifi名字"; key=clear表示密码用明文输出,用于下个步骤修改
netsh wlan export profile name="mywifi" folder=C:\Users\Liang\Desktop interface="Wlan" key=clear
 
3、修改配置文件,修改配置文件名为Wlan-mywifi2.xml
字符串转十六进制:打开浏览器按F12(或右键--检查)进入开发者模式,输入以下代码并按回车就得到十六进制的结果
function stringtoHex(str) {
    var hexStr = "";
    for (var i = 0; i < str.length; i++) {
        if ("" == hexStr)
            hexStr = str.charCodeAt(i).toString(16);
        else
            hexStr += str.charCodeAt(i).toString(16);
    }
    return hexStr.toUpperCase();
};
console.log(stringtoHex("mywifi2"));//mywifi2就是要连接的wifi名称
 
4、将添加wifi配置文件
netsh wlan add profile filename="C:\Users\Liang\Desktop\Wlan-mywifi2.xml"
 
5、查看配置是否添加成功
netsh wlan show profiles | findStr mywifi2
 
6、连接wifi(记得先开启热点mywifi2)
netsh wlan connect ssid=mywifi2 name=mywifi2
 
附:删除配置
netsh wlan delete profile filename="mywifi2"

Wlan-mywifi2.xml文件:外链:https://wwa.lanzoui.com/b0c9qo3vg 密码:8lq8

<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
	<name>mywifi2</name>
	<SSIDConfig>
		<SSID>
			<hex>6D797769666932</hex>
			<name>mywifi2</name>
		</SSID>
	</SSIDConfig>
	<connectionType>ESS</connectionType>
	<connectionMode>manual</connectionMode>
	<MSM>
		<security>
			<authEncryption>
				<authentication>WPA2PSK</authentication>
				<encryption>AES</encryption>
				<useOneX>false</useOneX>
			</authEncryption>
			<sharedKey>
				<keyType>passPhrase</keyType>
				<protected>false</protected>
				<keyMaterial>87654321</keyMaterial>
			</sharedKey>
		</security>
	</MSM>
	<MacRandomization xmlns="http://www.microsoft.com/networking/WLAN/profile/v3">
		<enableRandomization>false</enableRandomization>
		<randomizationSeed>740396315</randomizationSeed>
	</MacRandomization>
</WLANProfile>

Windows 自动连接wifi脚本

结果: (测试环境win10 64bit系统笔记本电脑)

Windows 自动连接wifi脚本

Windows 自动连接wifi脚本

附:删除配置
netsh wlan delete profile filename="mywifi2"

Windows 自动连接wifi脚本

字符串转十六进制(也可以直接在线搜索字符串转十六进制,也可以使用相关的软件winhex,ultraedit、等等......)

Windows 自动连接wifi脚本

 

 

 

转自:【精选】Windows 自动连接wifi的bat批处理脚本_批处理命令自动连接wifi-CSDN博客

- THE END -
Tag:

LG5

12月09日10:31

最后修改:2023年12月9日
0

非特殊说明,本博所有文章均为博主原创。