Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想从 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”
不知道为什么,怎么解决?
阅读 FOR 文档(输入help for或for /?)。
help for
for /?
要在批处理程序中使用 FOR 命令,请指定 %%variable 而不是 %variable。变量名区分大小写,因此 %i 与 %I 不同。
在批处理文件中,您只需要将百分比加倍。
for %%i in (cmd.exe) do set cmdPath=%%~$PATH:i
请注意,%COMSPEC%应该已经包含 cmd.exe 的完整路径
%COMSPEC%