我想从Windows上的路径系统变量中找到可执行文件的路径并将其分配给变量。 (unix'which'命令)
当我打开cmd.exe并输入:
时for %i in (cmd.exe) do @set cmdPath=%~$PATH:i
它有效(我用'echo%cmdPath%'测试)
但是当我将这一行复制到.bat文件时,它会在执行过程中向我抛出一个错误“〜$ PATH:我在这个时刻没有预料到”
我不知道为什么,如何解决?
答案 0 :(得分:1)
阅读FOR文档(键入help for
或for /?
)。
要在批处理程序中使用FOR命令,请改为指定%%变量 %变量。变量名称区分大小写,因此%i不同 来自%I。
您只需要在批处理文件中加倍百分比。
for %%i in (cmd.exe) do set cmdPath=%%~$PATH:i
请注意,%COMSPEC%
应该已经包含cmd.exe的完整路径