命令在cmd.exe中工作,但不在* .bat文件中

问题描述:

我想在窗口中找到路径系统变量的可执行文件路径并将其分配给变量。 (UNIX '的' 命令)命令在cmd.exe中工作,但不在* .bat文件中

当我打开的cmd.exe和类型:

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

它的工作原理

(我与 '回声%cmdPath%' 测试),但是当我复制此行到.bat文件它会引发我在执行过程中出现错误,“〜$ PATH:我在这一刻并不期望”

我不知道为什么,如何解决它?

阅读FOR文件(类型help forfor /?)。

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

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

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

注意%COMSPEC%应该已经持有的完整路径cmd.exe的

+0

谢谢你完整的答案。 cmd.exe只是一个例子(notepad.exe会更好)。我正在寻找cmake.exe路径。 – Dorian 2013-02-18 07:04:37