循环语法错误的批/ cmd

循环语法错误的批/ cmd

问题描述:

这不是我正在做的全部范围。我已经蒸馏了... 我敢肯定,有一些小事和愚蠢我没有在这里解释,我只是没有看到它。循环语法错误的批/ cmd

有人能告诉我为什么我可以成功执行以下命令netsh

netsh wlan show profile name="SomeWifi" 

然而,它在一个失败的循环?

for /F "tokens=1,2 delims=:" %a in ('netsh wlan show profile name="SomeWifi"') do echo %a 

取而代之的个人资料信息,在for循环就吐出了此错误消息:

没有在系统上没有这样的无线接口。

我错过了什么?上下文是否改变了括号(如用户)?是否有一个字符转义问题?

+1

'='被作为分隔符来处理和丢弃。使用'name^=“SomeWifi”转义它'' –

+0

就是这样!真棒。发布这个答案,我会接受它。 – BuvinJ

直接在for /f命令中使用时,需要转义一些字符(使用^作为前缀)。

其中一些是平时&|,有一个特殊意义的解析器似乎明显需要scaping。另一个有问题的字符是右括号()),可看作for命令的in子句的右括号。

但是一些字符(例如,,;)仅仅因为它们被看作分隔符并被删除而需要转义。你的情况=产生问题

您可以使用

for /F "tokens=1,2 delims=:" %a in ('netsh wlan show profile name^="SomeWifi"') do echo %a