这不是我正在做的全部范围。 我已经蒸馏下来了... 我敢肯定,我在这里没有解释一些微小而愚蠢的东西,我只是没有看到它。
有人可以告诉我为什么我可以成功执行以下netsh
命令:
netsh wlan show profile name="SomeWifi"
然而,它在 for 循环中失败了?
for /F "tokens=1,2 delims=:" %a in ('netsh wlan show profile name="SomeWifi"') do echo %a
而不是配置文件信息,在 for 循环中,它会吐出以下错误消息:
系统上没有这样的无线接口。
我错过了什么?括号中的上下文是否更改(如用户(? 是否存在角色转义问题?
在for /f
命令中直接使用时,有些字符需要转义(使用^
作为前缀(。
其中一些是通常的&
和|
,对解析器具有特殊含义似乎显然需要填充。另一个有问题的字符是右括号()
(,它可以看作是for
命令的in
子句的右括号。
但是一些角色(例如。,
,;
(需要转义,因为它们被视为分隔符并被删除。在您的情况下=
会产生问题
您可以使用
for /F "tokens=1,2 delims=:" %a in ('netsh wlan show profile name^="SomeWifi"') do echo %a