Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Batch/cmd for循环语法错误_Windows_Batch File_Cmd_Netsh - Fatal编程技术网

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”
将其转义即可!令人惊叹的把这个作为答案贴出来,我会接受的。