我在 Windows 7 机器上设置了 PATH 变量,当我这样做时一切看起来都很正常
echo %Path%
路径看起来很好,并且像平常一样用“;”分隔,但是,当我尝试运行任何自定义命令可执行文件(例如 git)时,我得到了类似的信息
'git' is not recognized as an internal or external command, operable program or batch file.
即使我的 Path 变量显示 C:\Program Files (x86)\Git\bin; 是路径之一,也会发生这种情况。如果我从 Windows 资源管理器运行 exe,它会运行正常。此外,我尝试重新启动 cmd 并进行完全重启,结果相同。这可能是什么原因造成的?
以下是 echo %Path% 的结果:
C:\Windows\system32;C:\Windows;C:\Windows\system32\Wbem;C:\Windows\system32\WindowsPowerShell\v1.0\; C:\Program Files (x86)\OpenSSH; C:\Python27; C:\Program Files (x86)\nodejs; C:\Program Files (x86)\Git\bin; C:\Program Files\Mercurial; C:\Program Files (x86)
它的实际设置如下:
%SystemRoot%\system32\; %SystemRoot%\; %SystemRoot%\System32\Wbem\; %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\; C:\Program Files (x86)\OpenSSH\bin\; C:\Python27\; C:\Program Files (x86)\curl-7.23\; C:\Program Files (x86)\Git\bin\; C:\Program Files (x86)\nodejs\; C:\Program Files (x86)\PHP\; C:\Program Files\Mercurial
答案1
仅;
用于在路径名中分隔目录。因此,每个字符都必须按字面意思处理。
这包括空格。否则,就不可能指定以空格结尾甚至以空格开头的目录(驱动器号是可选的)。
将您的路径设置为
%SystemRoot%\system32\;%SystemRoot%\;%SystemRoot%\System32\Wbem\;%SystemRoot%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\OpenSSH\bin\;C:\Python27\;C:\Program Files (x86)\curl-7.23\;C:\Program Files (x86)\Git\bin\;C:\Program Files (x86)\nodejs\;C:\Program Files (x86)\PHP\;C:\Program Files\Mercurial
它应该可以工作。