这不是我所做的全部范围。 我已经提炼出来了……我敢肯定,在这里我没有考虑到一些细小而愚蠢的东西,我只是看不到它而已。
有人可以告诉我为什么我可以成功地执行下面的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
而不是configuration文件信息,在for循环它吐出这个错误消息:
系统上没有这样的无线接口。
我错过了什么? 上下文是否改变了括号(如用户)? 有一个字符逃生问题?
直接在for /f
命令中使用时,有一些字符需要转义(使用^
作为前缀)。
其中一些是通常的&
和|
对解析器有特殊的意义似乎显然需要大幅度的提高。 另一个有问题的字符是右括号( )
),可以将其看作for
命令的in
子句的右括号。
但是一些字符(例如, ;
)需要转义,因为它们被看作是分隔符并被删除。 在你的情况=
产生的问题
您可以使用
for /F "tokens=1,2 delims=:" %a in ('netsh wlan show profile name^="SomeWifi"') do echo %a