标题: [网络连接] 求助把这2个自动连接对应WIFI的bat合并到一个 [打印本页]
作者: xiyimood 时间: 2022-1-25 11:32 标题: 求助把这2个自动连接对应WIFI的bat合并到一个
这是用来封装系统进入桌面时自动连接对应WIFI的,我们这 有2个WIFI,想自动保存到WIFI连接列表,求高手合并,虽然分别运行也是可以的,但还是想用一个做到,谢谢- @echo off
- powershell -c "Get-Content -LiteralPath '%~0' | Select-Object -Skip 3 | Out-String | Invoke-Expression"
- pause&goto b_bat
- $wifiName="WIFI1"; # WIFI NAME
- $wifiKey="88888888"; # WIFI PASSWORD
- $xml_Template=@"
- <?xml version="1.0"?>
- <WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
- <name>WIFI_NAME</name>
- <SSIDConfig>
- <SSID>
- <hex>WIFI_NAME_HEX</hex>
- <name>WIFI_NAME</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>WIFI_KEY</keyMaterial>
- </sharedKey>
- </security>
- </MSM>
- <MacRandomization xmlns="http://www.microsoft.com/networking/WLAN/profile/v3">
- <enableRandomization>false</enableRandomization>
- <randomizationSeed>634562794</randomizationSeed>
- </MacRandomization>
- </WLANProfile>
- "@
- $wifiNameHex="";
- foreach ($each in [System.Text.Encoding]::UTF8.GetBytes($wifiName)) { $wifiNameHex+=("{0:x}" -f $each).ToUpper();}
- $xmlFile="WLAN-{0}.xml" -f $wifiName
- $xml=$xml_Template -replace "WIFI_NAME_HEX",$wifiNameHex -replace "WIFI_NAME",$wifiName -replace "WIFI_KEY",$wifiKey
- $xml | Out-File $xmlFile -Encoding utf8
- netsh wlan delete profile $wifiName 2>$null
- netsh wlan add profile $xmlFile
- netsh wlan connect $wifiName
- Remove-Item -LiteralPath $xmlFile
复制代码
- @echo off
- powershell -c "Get-Content -LiteralPath '%~0' | Select-Object -Skip 3 | Out-String | Invoke-Expression"
- pause&exit
- $wifiName="WIFI2"; # WIFI NAME
- $wifiKey="88888888"; # WIFI PASSWORD
- $xml_Template=@"
- <?xml version="1.0"?>
- <WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
- <name>WIFI_NAME</name>
- <SSIDConfig>
- <SSID>
- <hex>WIFI_NAME_HEX</hex>
- <name>WIFI_NAME</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>WIFI_KEY</keyMaterial>
- </sharedKey>
- </security>
- </MSM>
- <MacRandomization xmlns="http://www.microsoft.com/networking/WLAN/profile/v3">
- <enableRandomization>false</enableRandomization>
- <randomizationSeed>634562794</randomizationSeed>
- </MacRandomization>
- </WLANProfile>
- "@
- $wifiNameHex="";
- foreach ($each in [System.Text.Encoding]::UTF8.GetBytes($wifiName)) { $wifiNameHex+=("{0:x}" -f $each).ToUpper();}
- $xmlFile="WLAN-{0}.xml" -f $wifiName
- $xml=$xml_Template -replace "WIFI_NAME_HEX",$wifiNameHex -replace "WIFI_NAME",$wifiName -replace "WIFI_KEY",$wifiKey
- $xml | Out-File $xmlFile -Encoding utf8
- netsh wlan delete profile $wifiName 2>$null
- netsh wlan add profile $xmlFile
- netsh wlan connect $wifiName
- Remove-Item -LiteralPath $xmlFile
复制代码
作者: yakeyun 时间: 2022-1-25 13:30
本帖最后由 yakeyun 于 2022-1-26 17:08 编辑
回复 1# xiyimood
效果自测:复制代码
作者: xiyimood 时间: 2022-1-25 14:40
回复 2# yakeyun
谢谢大神,没有成功- Invoke-Expression : 所在位置 行:48 字符: 3
- + IF ERRORLEVEL 1 goto WIFI2
- + ~
- if 语句中的“IF”后面缺少“(”。
- 所在位置 行:49 字符: 3
- + IF ERRORLEVEL 0 exit
- + ~
- if 语句中的“IF”后面缺少“(”。
- 所在位置 行:53 字符: 6
- + pause&exit
- + ~
- 不允许使用与号(&)。& 运算符是为将来使用而保留的;请用双引号将与号引起来("&"),以将其作为字符串的一部分传递。
- 所在位置 行:1 字符: 96
- + ... 装部署文件\c.bat' | Select-Object -Skip 3 | Out-String | Invoke-Expression
- + ~~~~~~~~~~~~~~~~~
- + CategoryInfo : ParserError: (:) [Invoke-Expression], ParseException
- + FullyQualifiedErrorId : MissingOpenParenthesisInIfStatement,Microsoft.PowerShell.Commands.InvokeExpressionComman
- d
-
- 请按任意键继续. . .
复制代码
作者: xiyimood 时间: 2022-1-25 14:41
回复 yakeyun
谢谢大神,没有成功
xiyimood 发表于 2022-1-25 14:40
c.bat是我保存你的代码文件
作者: went 时间: 2022-1-25 15:14
本帖最后由 went 于 2022-1-26 20:39 编辑
47,49行自己改下
test.bat, ansi编码- #&cls&@cd /d "%~dp0" & powershell -c "Get-Content '%~0' | Out-String | Invoke-Expression" &pause&exit
- $xml_Template=@'
- <?xml version="1.0"?>
- <WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
- <name>WIFI_NAME</name>
- <SSIDConfig>
- <SSID>
- <hex>WIFI_NAME_HEX</hex>
- <name>WIFI_NAME</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>WIFI_KEY</keyMaterial>
- </sharedKey>
- </security>
- </MSM>
- <MacRandomization xmlns="http://www.microsoft.com/networking/WLAN/profile/v3">
- <enableRandomization>false</enableRandomization>
- <randomizationSeed>634562794</randomizationSeed>
- </MacRandomization>
- </WLANProfile>
- '@
- #函数 更新或添加一个wifi配置
- function Add-WifiConfig($wifiName,$wifiKey,[switch]$connect){
- $wifiNameHex="";
- foreach ($each in [System.Text.Encoding]::UTF8.GetBytes($wifiName)) { $wifiNameHex+=("{0:x}" -f $each).ToUpper();}
- $xmlFile="WLAN-{0}.xml" -f $wifiName
- $xml=$xml_Template -replace "WIFI_NAME_HEX",$wifiNameHex -replace "WIFI_NAME",$wifiName -replace "WIFI_KEY",$wifiKey
- $xml | Out-File $xmlFile -Encoding utf8
- netsh wlan delete profile $wifiName >$null 2>$null
- netsh wlan add profile $xmlFile
- if($connect){ netsh wlan connect $wifiName }
- Remove-Item -LiteralPath $xmlFile
- }
-
- Add-WifiConfig -wifiName 'TP-LINK_0AE2' -wifiKey 'LLLL1234' -connect
-
- Add-WifiConfig -wifiName 'TP-LINK_5G_0AE2' -wifiKey 'LLLL1234'
复制代码
作者: yakeyun 时间: 2022-1-25 16:21
本帖最后由 yakeyun 于 2022-1-25 16:24 编辑
回复 3# xiyimood
已经修改,再试下看看。批处理中只有包含了中文,才能另存为ansi编码。
当检测到第一个WIFI连接,延时10秒,网络畅通就退出,网络不通就尝试连接第二个WIFI。IP分配延时时间,可以根据实际自测速度调整,一般5秒以内就可以正常连接上。
作者: xiyimood 时间: 2022-1-26 14:33
回复 6# yakeyun
你好,您是在原回复上改的吗,我试了还不行- Invoke-Expression : 所在位置 行:48 字符: 3
- + IF ERRORLEVEL 1 goto WIFI2
- + ~
- if 语句中的“IF”后面缺少“(”。
- 所在位置 行:49 字符: 3
- + IF ERRORLEVEL 0 goto End
- + ~
- if 语句中的“IF”后面缺少“(”。
- 所在位置 行:53 字符: 6
- + pause&exit
- + ~
- 不允许使用与号(&)。& 运算符是为将来使用而保留的;请用双引号将与号引起来("&"),以将其作为字符串的一部分传递。
- 所在位置 行:1 字符: 108
- + ... sktop\1.bat' | Select-Object -Skip 3 | Out-String | Invoke-Expression
- + ~~~~~~~~~~~~~~~~~
- + CategoryInfo : ParserError: (:) [Invoke-Expression], ParseException
- + FullyQualifiedErrorId : MissingOpenParenthesisInIfStatement,Microsoft.PowerShell.Commands.InvokeExpressionComman
- d
-
- 请按任意键继续. . .
复制代码
作者: xiyimood 时间: 2022-1-26 14:35
回复 5# went
哥,你这确实是可以,但只是加入记忆,可以让它主动连接第一个wifi吗- 已将配置文件 GDPR-office 添加到接口 WLAN。
- 已成功完成连接请求。
- 已将配置文件 CSGX2 添加到接口 WLAN。
- 已成功完成连接请求。
- 请按任意键继续. . .
复制代码
作者: yakeyun 时间: 2022-1-26 17:09
回复 7# xiyimood
原代码基础上修改,可以再试下看看。
作者: went 时间: 2022-1-26 20:43
回复 8# xiyimood
需要连接哪个wifi,就加上-connect选项,详见5楼
作者: xiyimood 时间: 2022-1-27 17:50
回复 10# went
加了 -connect不知为啥也没自动连接,自动连接没打勾
作者: went 时间: 2022-1-27 20:39
回复 11# xiyimood
我这里可以自动连接,你那边不清楚
作者: xiyimood 时间: 2022-1-28 10:46
回复 12# went
感谢,实在没自动连接手动点一下也行,已经很不错了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |