windows - Batch/cmd for 循环语法错误

标签 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 循环中它吐出此错误消息,而不是配置文件信息:

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/

相关文章:

windows - 在 Windows 上安装 NERDTree

c++ - 使用批处理重新启动 C++ 控制台应用程序不会关闭网络连接

windows - 如何在不打开 VB6 中的 CMD 窗口的情况下运行 shell 命令

batch-file - 从远程桌面复制到本地机器的批处理文件

batch-file - 将 Robocopy 批处理转换为 VB 脚本

python - Windows 10 Ubuntu 外壳 "CUDA driver version is insufficient"

c++ - 通过 OLE 自动化从 C++ 应用程序运行存储在 Excel 工作簿中的指定宏

python - 保留子文件夹结构的递归ffmpeg脚本

command-line - Windows批处理文件 - 从当前日期计算文件名

windows - 如何测试文件是否是批处理脚本中的目录?