将命令的输出分配给Windows 10 shell脚本中的变量

时间:2017-11-07 03:36:55

标签: shell batch-file

我试图检测我的Windows 10笔记本电脑连接的SSID,并根据检测到的SSID决定做什么。我可以通过以下命令检测SSID:

netsh wlan show interfaces | findstr /r "^....SSID"

此命令输出如下:

    SSID                   :my_ssid    

我尝试使用以下命令将此字符串输出分配给变量:

set ssid=
for /f %%i in ('netsh wlan show interfaces | findstr /r "^....SSID"') do set ssid=%%i
echo SSID is "%ssid%"

但是,我一直收到以下错误消息:

| was unexpected at this time.

有谁知道为什么?

此外,是否可以剥离" SSID","的网格输出:"和空白,以便我只得到#34; my_ssid"作为输出?

1 个答案:

答案 0 :(得分:1)

for循环中使用管道时,需要使用^对其进行转义。否则,翻译人员会认为你将整个循环推到了那一点,而for /f %%i in ('netsh wlan show interfaces并不是有效的语法。

for /f %%i in ('netsh wlan show interfaces ^| findstr /r "^....SSID"') do set ssid=%%i