Windows Batch/cmd for循环语法错误
这不是我所做的全部范围。我已经提炼出。。。 我肯定有一些小而愚蠢的事情我没能解释清楚,我就是看不出来 有人能告诉我为什么我能成功执行以下Windows Batch/cmd for循环语法错误,windows,batch-file,cmd,netsh,Windows,Batch File,Cmd,Netsh,这不是我所做的全部范围。我已经提炼出。。。 我肯定有一些小而愚蠢的事情我没能解释清楚,我就是看不出来 有人能告诉我为什么我能成功执行以下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循环中,它不显示配置文件信息,而是显示以下错
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
命令的子句中的右括号
但是有些字符(例如,,
,;
)需要转义,因为它们被视为分隔符并被删除。在您的情况下,=
会产生问题
你可以用
for /F "tokens=1,2 delims=:" %a in ('netsh wlan show profile name^="SomeWifi"') do echo %a
当直接在for/f
命令中使用时,有些字符需要转义(使用^
作为前缀)
其中一些是通常的&
和|
,它们对解析器有特殊的意义,显然需要跳过。另一个有问题的字符是右括号()
),它可以看作是for
命令的子句中的右括号
但是有些字符(例如,,
,;
)需要转义,因为它们被视为分隔符并被删除。在您的情况下,=
会产生问题
你可以用
for /F "tokens=1,2 delims=:" %a in ('netsh wlan show profile name^="SomeWifi"') do echo %a
=
作为分隔符处理并丢弃。使用name^=“SomeWifi”
将其转义即可!令人惊叹的将此作为答案发布,我将接受。=
作为分隔符处理并丢弃。使用name^=“SomeWifi”
将其转义即可!令人惊叹的把这个作为答案贴出来,我会接受的。