【问题标题】:Command only saving one part of a Network's SSID?命令只保存网络 SSID 的一部分?
【发布时间】:2025-12-25 09:40:07
【问题描述】:

在创建一个运行时将输出网络SSID 的程序时,我遇到了一个问题,即只输出了一部分SSID。我用来查找和输出SSID 的命令是:

cd "%USERPROFILE%\Desktop" & for /f "tokens=2* delims=: " %A in ('netsh wlan show interface ^| findstr "SSID" ^| findstr /v "BSSID"') do set A=%A

例如,如果我的网络的SSID 是“Bob's Wifi”,则该命令将输出“Bob's”而不是“Bob's Wifi”。

【问题讨论】:

    标签: windows cmd ssid


    【解决方案1】:

    问题出在for /f 的选项中。子句tokens=2* 不要求将第二个和后续令牌检索到for 可替换参数%A,它检索第二个令牌到%A,将第三个和后续令牌检索到%B。相当于

    for /f "tokens=2,* ..."
    

    我无法测试代码(没有 wlan),但这应该可以解决问题

    for /f "tokens=1* delims=: " %A  ..... do set "networkName=%B"
    

    现在字段名称(冒号左侧的标记)存储在%A 中,全名(行中倒数第二个标记)存储在%B

    【讨论】: