批处理文件中的单引号不会使所选程序被执行

批处理文件中的单引号不会使所选程序被执行

当我尝试使用单引号获取批处理文件中命令的输出时,我收到以下信息:

C:>for /f "tokens=2 delims=:." %a 在 ('chcp') 中执行 (echo %a)

‘chcp’ 不被识别为内部或外部命令,也不是可运行程序或批处理文件。

可以直接从同一位置运行此命令:

C:> chcp

活动代码页:437

我已经检查了环境变量,它们似乎设置正确。当我使用“dir”而不是“chcp”时,也会出现上述问题。

有什么想法可能是什么原因造成的以及如何解决?

操作系统:WIN 10

答案1

如您所见,您的 ComSpec 环境变量包含两个值:C:\Windows\system32\cmd.exe;C:\Windows\SysWOW64\cmd.exe。这会导致for /f命令在尝试找出如何找到 时阻塞chcp

将 ComSpec 环境变量更改为典型值C:\Windows\system32\cmd.exe将使该for /机制起作用。

你并不孤单

  • 根据这个问题,您并不是唯一一个在 ComSpec 中同时列出 System32 和 SysWOW64 版本的 cmd.exe 的人。
  • 并且在这个问题,不同格式的 ComSpec 导致了相同的“...不被识别为内部或外部命令...”错误。

相关内容