|
本帖最后由 2010qaqz111 于 2015-12-19 11:24 编辑
批处理写的,要求系统没有砍掉ping.exe
请使用附件中的cmd脚本,不要直接复制粘贴此处的代码,论坛程序会把TAB字符替换为连续的空格,第33行分析SSID和PSWD的代码会受到影响!
- @echo off
- pushd %~dp0
- set WIFITXT=wifilist.txt
- set WIFIXML=%temp%\wifi.xml
- ::获取保存的WIFI列表
- set FBINST=fbinstplus.exe
- set UDPATH=
- ::当前目录有就直接用当前目录的
- if exist "%WIFITXT%" goto:waitWlansvc
- ::否则尝试从UD区提取
- for /f "usebackq" %%i in (`%FBINST% --hdlist "(hd%%N)" --ALL --ALL --UD`) do (
- %FBINST% %%i output "%UDPATH%%WIFITXT%" %%~nx
- if exist "%WIFITXT%" goto:waitWlansvc
- )
- ::没找到
- goto:end
- ::等待无线配置服务启动
- :waitWlansvc
- for /f "usebackq delims=" %%i in (`net start^|find "WLAN"`) do (
- echo Wlansvc Detected: [%%i]
- goto:WlansvcStarted
- )
- echo waiting Wlansvc start...
- 1>nul 2>nul ping 0.0.0.0 -n 5
- goto:waitWlansvc
- :WlansvcStarted
- ::添加WIFI网络
- for /f "usebackq tokens=1,2 delims= " %%i in ("%WIFITXT%") do (
- ::
- ::请注意上面一行delims=后面是一个TAB字符,不是一连串空格!!!
- ::这里的一连串空格是被论坛程序替换掉的,在编辑模式还是一个TAB字符,但是显示出来就变成一连串空格了。
- ::
- > %WIFIXML% echo ^<?xml version="1.0"?^>
- >>%WIFIXML% echo ^<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1"^>
- >>%WIFIXML% echo ^<name^>%%i^</name^>
- >>%WIFIXML% echo ^<SSIDConfig^>
- >>%WIFIXML% echo ^<SSID^>
- >>%WIFIXML% echo ^<name^>%%i^</name^>
- >>%WIFIXML% echo ^</SSID^>
- >>%WIFIXML% echo ^</SSIDConfig^>
- >>%WIFIXML% echo ^<connectionType^>ESS^</connectionType^>
- >>%WIFIXML% echo ^<connectionMode^>auto^</connectionMode^>
- >>%WIFIXML% echo ^<autoSwitch^>false^</autoSwitch^>
- >>%WIFIXML% echo ^<MSM^>
- >>%WIFIXML% echo ^<security^>
- >>%WIFIXML% echo ^<authEncryption^>
- >>%WIFIXML% echo ^<authentication^>WPA2PSK^</authentication^>
- >>%WIFIXML% echo ^<encryption^>AES^</encryption^>
- >>%WIFIXML% echo ^<useOneX^>false^</useOneX^>
- >>%WIFIXML% echo ^</authEncryption^>
- >>%WIFIXML% echo ^<sharedKey^>
- >>%WIFIXML% echo ^<keyType^>passPhrase^</keyType^>
- >>%WIFIXML% echo ^<protected^>false^</protected^>
- >>%WIFIXML% echo ^<keyMaterial^>%%j^</keyMaterial^>
- >>%WIFIXML% echo ^</sharedKey^>
- >>%WIFIXML% echo ^</security^>
- >>%WIFIXML% echo ^</MSM^>
- >>%WIFIXML% echo ^</WLANProfile^>
- echo netsh wlan add profile filename=%WIFIXML%
- netsh wlan add profile filename=%WIFIXML%
- del %WIFIXML%
- )
- :end
- popd
复制代码
请使用附件中的cmd脚本,不要直接复制粘贴此处的代码,论坛程序会把TAB字符替换为连续的空格,第33行分析SSID和PSWD的代码会受到影响!
工作方式
从一个文本文件里面读 SSID 和 PSWD 来添加无线网络。
文本文件的文件名是【wifilist.txt】,明文,SSID和PSWD在同一行,TAB字符分隔。
wifilist.txt 的文件名可以自己修改,在第5行
查找 wifilist.txt 的方式
1.脚本所在的目录有 wifilist.txt 就直接用。
2.否则尝试从UD分区提取。
第9行:set FBINST=fbinstplus.exe 这是用来从ud区取数据文件的程序,我用的 fbinstplus,原帖在这里:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=187865
脚本默认 fbinstplus.exe 就在脚本所在目录,或者可以被 PATH 环境变量索引到。
如有需要,请自行修改这个程序的文件名和路径。
第10行:这行设置 wifilist.txt 在 UD 的路径,可以自己修改。
注意路径分隔是正斜杠:【/】,并且应以正斜杠结尾,这样下面拼接的字串才会是正确的路径。
如:下面的命令实际执行就会是这样(15行):fbinstplus.exe (hd0) output "WIFIDATA/wifilist.txt" %~nx
第14行:for /f "usebackq" %%i in (`%FBINST% --hdlist "(hd%%N)" --ALL --ALL --UD`) do ( 标注为红色的开关是检查所有磁盘,这个开关替换成【--REMOVABLE】可以排除本地硬盘。
关于命令的具体用法请参照 fbinstplus 的发布帖(链接在上面)。
目前我是用在C大的USBOS的两个8PE的RAMOS里,已经测试过可以使用没有问题。
脚本和 wifilist.txt 的样例我传一个到附件。 |
|