这不是我正在做的全部内容。我已经蒸馏... 我确定这里有一些我没有考虑到的微小而愚蠢的事情,我只是没有看到它。
谁能告诉我为什么我可以成功执行以下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 循环中它吐出此错误消息,而不是配置文件信息:
There is no such wireless interface on the system.
我错过了什么?括号中的上下文是否发生了变化(如用户)?是否存在字符转义问题?
最佳答案
有些字符直接用在^
中需要转义(使用for /f
作为前缀)命令。
其中一些是常见的&
和 |
对解析器具有特殊意义的内容似乎显然 需要转义。另一个有问题的字符是右括号 ( )
),它可以看作是 in
的右括号。 for
的条款命令。
但有些字符(例如 ,
、 ;
)需要转义,因为它们被视为分隔符并被删除。在你的情况下 =
产生问题
你可以使用
for /F "tokens=1,2 delims=:" %a in ('netsh wlan show profile name^="SomeWifi"') do echo %a
关于windows - Batch/cmd for 循环语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45637377/