You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在批处理文件中提取当前WiFi SSID并赋值给环境变量

提取当前WiFi SSID到环境变量的批处理方案

需求说明

需要在批处理中通过set "var=x"语法,将当前连接的WiFi SSID单独提取并赋值给环境变量,而非保存包含SSID的整行内容。

当前代码及输出

当前执行的脚本:

@echo off
set "npcm=%appdata%\npcm.txt"
2>NUL netsh wlan show interfaces | findstr /i "SSID" > "%npcm%"
pause

生成的npcm.txt内容:

SSID                   : MyNetwork
    BSSID                  : xx:xx:xx:xx:xx:xx

解决方案

可以直接通过for /f解析netsh的输出,无需生成中间文件,直接提取SSID值并赋值给变量。完整脚本如下:

@echo off
setlocal enabledelayedexpansion
set "wifi_ssid="
for /f "tokens=2* delims=:" %%a in ('netsh wlan show interfaces ^| findstr /i "SSID"') do (
    set "wifi_ssid=%%b"
    rem 去除SSID值前后的空格
    set "wifi_ssid=!wifi_ssid:~1!"
)
rem 输出验证变量值
echo 当前WiFi SSID: !wifi_ssid!
rem 如果需要保存到全局变量,可在endlocal后传递
endlocal & set "wifi_ssid=%wifi_ssid%"
pause

代码解释

  • for /f "tokens=2* delims=:" %%a:以冒号为分隔符拆分每行内容,tokens=2*表示把冒号后的所有内容(含后续可能的冒号)赋值给%%b,%%a对应冒号前的部分
  • set "wifi_ssid=!wifi_ssid:~1!":去除SSID值开头的空格(原输出中冒号后默认带一个空格)
  • endlocal & set "wifi_ssid=%wifi_ssid%":在局部环境结束后,将变量传递到全局环境中

替代简化方案(无需延迟扩展)

如果SSID中不含空格,可使用更简洁的写法:

@echo off
for /f "tokens=2 delims=: " %%a in ('netsh wlan show interfaces ^| findstr /i "SSID"') do set "wifi_ssid=%%a"
echo 当前WiFi SSID: %wifi_ssid%
pause

这里delims=: 同时以冒号和空格为分隔符,直接提取SSID值。


内容的提问来源于stack exchange,提问作者Christian Cangelli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 05:07:07