1

我想从 Windows 上的路径系统变量中找到可执行文件的路径并将其分配给变量。(unix 'which' 命令)

当我打开 cmd.exe 并输入:

for %i in (cmd.exe) do @set cmdPath=%~$PATH:i

它有效(我用'echo %cmdPath%'测试它)

但是当我将此行复制到 .bat 文件时,它会在执行过程中抛出一个错误“~$PATH:i is not expected in this moment”

不知道为什么,怎么解决?

4

1 回答 1

1

阅读 FOR 文档(输入help forfor /?)。

要在批处理程序中使用 FOR 命令,请指定 %%variable 而不是 %variable。变量名区分大小写,因此 %i 与 %I 不同。

在批处理文件中,您只需要将百分比加倍。

for %%i in (cmd.exe) do set cmdPath=%%~$PATH:i

请注意,%COMSPEC%应该已经包含 cmd.exe 的完整路径

于 2013-02-15T15:43:01.987 回答