返回列表 发帖

[系统相关] 命令行连接开放式的ssid无线网络

本帖最后由 小白龙 于 2025-1-8 21:15 编辑

我有个名为abc的ssid无线网络, 它是开放的, 没有密码, 怎样用批处理联接该无线网络? 并判断wifi是否已经成功连接, 下面的代码太长了,
另外就是在连之前, 先检查该ssid是否已经连上, 只有没连上时才连
@echo off
REM 定义WiFi的SSID
set "ssid=abc"
set "profile_name=%ssid%_profile"
REM 检查WiFi配置文件是否存在
netsh wlan show profiles | findstr /I /C:"%profile_name%"
if %errorlevel% neq 0 (
    echo 配置文件 %profile_name% 不存在,正在创建新的配置文件...
    REM 创建WiFi配置文件XML
    (
    echo ^<?xml version="1.0"?^>
    echo ^<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1"^>
    echo     ^<name^>%profile_name%^</name^>
    echo     ^<SSIDConfig^>
    echo         ^<SSID^>
    echo             ^<name^>%ssid%^</name^>
    echo         ^</SSID^>
    echo     ^</SSIDConfig^>
    echo     ^<connectionType^>ESS^</connectionType^>
    echo     ^<connectionMode^>auto^</connectionMode^>
    echo     ^<MSM^>
    echo         ^<security^>
    echo             ^<authEncryption^>
    echo                 ^<authentication^>open^</authentication^>
    echo                 ^<encryption^>none^</encryption^>
    echo             ^</authEncryption^>
    echo         ^</security^>
    echo     ^</MSM^>
    echo ^</WLANProfile^>
    ) > "%TEMP%\%profile_name%.xml"
    REM 添加WiFi配置文件
    netsh wlan add profile filename="%TEMP%\%profile_name%.xml"
    if %errorlevel% neq 0 (
        echo 无法创建配置文件 %profile_name%
        exit /b 1
    )
) else (
    echo 配置文件 %profile_name% 已存在。
)
REM 连接到指定WiFi网络
echo 正在连接到WiFi网络 %ssid%...
netsh wlan connect name="%profile_name%" ssid="%ssid%"
REM 等待几秒钟以确保连接成功
timeout /t 10 /nobreak > nul
REM 检查连接状态
netsh wlan show interfaces | findstr /I /C:"%ssid%"
if %errorlevel% equ 0 (
    echo 成功连接到WiFi网络 %ssid%
) else (
    echo 无法连接到WiFi网络 %ssid%
)
pauseCOPY

返回列表