本帖最后由 ygqiang 于 2025-1-9 06:54 编辑
批处理,连接wifi无线网,变量替换.xml文件中的ssid和密码?
代码运行后,可以正常连接wifi无线网。- @echo off
-
- set "sidd=newifi"
- set "pass=abcd1234"
-
-
- (for /f "delims=" %%a in (%~fs0) do (
- if "%%a"=="<?xml version="1.0"?>" set f=1
- if defined f echo;%%a
- ))>"%~fs0.xml"
- netsh wlan add profile filename="%~fs0.xml"
- netsh wlan connect name=%sidd%
- del "%~fs0.xml"
- pause
-
- REM 等待几秒钟以确保连接成功
- timeout /t 10 /nobreak > nul
- REM 检查连接状态
- netsh wlan show interfaces | findstr /I /C:%sidd%
- if %errorlevel% equ 0 (
- echo 成功连接到WiFi网络 %ssid%
- ) else (
- echo 无法连接到WiFi网络 %ssid%
- )
-
- pause
-
- goto :eof
-
-
- <?xml version="1.0"?>
- <WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
- <name>newifi</name>
- <SSIDConfig>
- <SSID>
- <name>newifi</name>
- </SSID>
- </SSIDConfig>
- <connectionType>ESS</connectionType>
- <connectionMode>auto</connectionMode>
- <MSM>
- <security>
- <authEncryption>
- <authentication>WPA2PSK</authentication>
- <encryption>AES</encryption>
- <useOneX>false</useOneX>
- </authEncryption>
- <sharedKey>
- <keyType>passPhrase</keyType>
- <protected>false</protected>
- <keyMaterial>abcd1234</keyMaterial>
- </sharedKey>
- </security>
- </MSM>
- <MacRandomization xmlns="http://www.microsoft.com/networking/WLAN/profile/v3">
- <enableRandomization>false</enableRandomization>
- </MacRandomization>
- </WLANProfile>
复制代码 遇到的主要问题如下:
下面的测试代码,生成的xml文件内容,变量本身%sidd%输出。而不是变量的值newifi输出。
如何修改代码,实现输出文件内容,将变量的值输出?
- @echo off
-
- set "sidd=newifi"
-
-
- (for /f "delims=" %%a in (%~fs0) do (
- if "%%a"=="<?xml version="1.0"?>" set f=1
- if defined f echo;%%a
- ))>"%~fs0.xml"
- pause
-
- <?xml version="1.0"?>
- <WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
- <name>%sidd%</name>
- <SSIDConfig>
- <SSID>
- <name>%sidd%</name>
复制代码 生成的有问题的xml文件,内容如下:
<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
<name>^%sidd^%</name>
<SSIDConfig>
<SSID>
<name>%sidd%</name>
需要实现生成xml文件的效果如下:
<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
<name>newifi</name>
<SSIDConfig>
<SSID>
<name>newifi</name> |