Windows 自动连接wifi的bat批处理脚本

刺骨的言语ヽ痛彻心扉 2022-10-28 10:11 1500阅读 0赞

Windows 自动连接wifi脚本

一、简述

  1. 记-使用bat脚本实现自动连接wifi(wifi是已经连接过的)。
  2. 使用场景1:需要连接设备的wifi热点进行调试设备并获取设备的相关信息,设备是会定时重启的,此时需要自动连接上设备的wifi,但发现系统自带的自动连接热点功能不靠谱,所以需要使用bat批处理脚本进行定时检测是否已经连接上wifi并自动重连设备wifi
  3. 使用场景2:测试仪器wifi热点的稳定行,wifi连接和断开wifi测试。
  4. 使用场景3:需要保持PC上位机与设备的wifi连接
  5. 1:该脚本使用前提是已经连接过WiFi,即电脑已经保存了要连接的热点的相关信息(包括密码,没有连接过的需要自己添加配置文件)
  6. 2:有的系统需要以**管理员权限**执行该脚本,此时日志默认保存目录不是当前路径,可以直接指定set log\_file=D:\\wifi.log

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

二、测试脚本

  1. @echo off
  2. rem @file:auto_connect_wifi.bat
  3. rem @author:Genven_Liang
  4. rem @date:2021.02.05
  5. rem @note:for auto connect wifi
  6. rem 要连接的wifi名称
  7. set wifi_name=mywifi
  8. set log_file=wifi.log
  9. set try_cnt=1
  10. rem 如果有参数1,就将参数1指定为wifi名称
  11. if [%1] == [] (echo default_wifi>nul) || (
  12. set wifi_name=%1
  13. )
  14. echo [%date% %time%] Start connect wifi:%wifi_name% >>%log_file%
  15. rem 主循环
  16. :mainloop
  17. (netsh WLAN show interfaces | findStr %wifi_name% >nul && (
  18. echo already connected.
  19. )) || (
  20. set /a try_cnt+=1
  21. echo [%date% %time%] try to connect...[%try_cnt%]
  22. echo [%date% %time%] try to connect...[%try_cnt%] >>%log_file%
  23. netsh wlan connect ssid=%wifi_name% name=%wifi_name% >>%log_file%
  24. )
  25. choice /t 5 /d y /n >nul
  26. goto mainloop

三、测试效果

20210205202152828.gif

四、总结

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

4.2 rem 开头的是注释

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

20210205202557372.png

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25hbmZlaWJ1eWk_size_16_color_FFFFFF_t_70

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25hbmZlaWJ1eWk_size_16_color_FFFFFF_t_70 1

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

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

20210205203544222.png

4.7 断开当前WiFi:netsh wlan disconnect

20210205204702999.png

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

还可以使用timeout /t 3 /nobreak

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25hbmZlaWJ1eWk_size_16_color_FFFFFF_t_70 2

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25hbmZlaWJ1eWk_size_16_color_FFFFFF_t_70 3

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25hbmZlaWJ1eWk_size_16_color_FFFFFF_t_70 4

=============== 以下回复 aiya_maya123 =============

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

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

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

  1. <?xml version="1.0"?>
  2. <WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
  3. <name>mywifi2</name>
  4. <SSIDConfig>
  5. <SSID>
  6. <hex>6D797769666932</hex>
  7. <name>mywifi2</name>
  8. </SSID>
  9. </SSIDConfig>
  10. <connectionType>ESS</connectionType>
  11. <connectionMode>manual</connectionMode>
  12. <MSM>
  13. <security>
  14. <authEncryption>
  15. <authentication>WPA2PSK</authentication>
  16. <encryption>AES</encryption>
  17. <useOneX>false</useOneX>
  18. </authEncryption>
  19. <sharedKey>
  20. <keyType>passPhrase</keyType>
  21. <protected>false</protected>
  22. <keyMaterial>87654321</keyMaterial>
  23. </sharedKey>
  24. </security>
  25. </MSM>
  26. <MacRandomization xmlns="http://www.microsoft.com/networking/WLAN/profile/v3">
  27. <enableRandomization>false</enableRandomization>
  28. <randomizationSeed>740396315</randomizationSeed>
  29. </MacRandomization>
  30. </WLANProfile>

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBAR2VudmVuX0xpYW5n_size_20_color_FFFFFF_t_70_g_se_x_16

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

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBAR2VudmVuX0xpYW5n_size_20_color_FFFFFF_t_70_g_se_x_16 1

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBAR2VudmVuX0xpYW5n_size_12_color_FFFFFF_t_70_g_se_x_16

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

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBAR2VudmVuX0xpYW5n_size_16_color_FFFFFF_t_70_g_se_x_16

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

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBAR2VudmVuX0xpYW5n_size_20_color_FFFFFF_t_70_g_se_x_16 2

发表评论

表情:
评论列表 (有 0 条评论,1500人围观)

还没有评论,来说两句吧...

相关阅读