如何提取Netsh命令输出的Wi-Fi名称并存入批处理变量?
提取已连接Wi-Fi名称并存入批处理变量
可以通过for /f命令解析netsh的输出,精准提取Wi-Fi名称并存入变量,以下是两种可行的实现方式:
方式一:处理空格后提取
@echo off setlocal enabledelayedexpansion for /f "tokens=2 delims=:" %%a in ('netsh wlan show interfaces ^| findstr Profile') do ( set "wifi_name=%%a" :: 移除名称前的空格 set "wifi_name=!wifi_name:~1!" ) echo 已连接Wi-Fi:%wifi_name% endlocal
说明:
for /f捕获netsh命令的输出并逐行处理tokens=2 delims=:指定以冒号为分隔符,提取第二部分内容- 启用
enabledelayedexpansion是为了在循环内部修改变量,!wifi_name:~1!用来去掉提取内容前的第一个空格
方式二:更简洁的直接提取
@echo off for /f "tokens=2* delims=:" %%a in ('netsh wlan show interfaces ^| findstr Profile') do set "wifi_name=%%b" echo 已连接Wi-Fi:%wifi_name%
说明:
tokens=2*表示提取第二个分隔段之后的所有内容(%%b会自动跳过冒号后多余的空格,直接获取完整的Wi-Fi名称)- 这种写法无需额外处理空格,代码更简洁
内容的提问来源于stack exchange,提问作者Ricardo
相关产品推荐
相关产品推荐

