我试图在Windows中添加C:\xampp\php到我的系统PATH环境变量。

我已经使用环境变量对话框添加了它。

但当我在控制台输入:

C:\>path

它不会显示新的C:\xampp\php目录:

PATH=D:\Program Files\Autodesk\Maya2008\bin;C:\Ruby192\bin;C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;C:\PROGRA~1\DISKEE~2\DISKEE~1\;c:\Program Files\Microsoft SQL
Server\90\Tools\binn\;C:\Program Files\QuickTime\QTSystem\;D:\Program Files\TortoiseSVN\bin
;D:\Program Files\Bazaar;C:\Program Files\Android\android-sdk\tools;D:\Program Files\
Microsoft Visual Studio\Common\Tools\WinNT;D:\Program Files\Microsoft Visual Studio\Common
\MSDev98\Bin;D:\Program Files\Microsoft Visual Studio\Common\Tools;D:\Program Files\
Microsoft Visual Studio\VC98\bin

我有两个问题:

为什么会发生这种情况?我做错什么了吗? 另外,如何使用控制台(并以编程方式,使用批处理文件)向PATH变量添加目录?


当前回答

如果你已经在你想添加到PATH的目录中,这很方便:

set PATH=%PATH%;%CD%

它适用于标准的Windows cmd,但不适用于PowerShell。

对于PowerShell, %CD%等价于[System.Environment]::CurrentDirectory。

其他回答

使用gtools中的path。

它以一种直观的方式做事。例如:

pathed /REMOVE "c:\my\folder"
pathed /APPEND "c:\my\folder"

它显示结果,而不需要衍生一个新的cmd!

下面的解决方案非常有效。

在你的Windows终端上试试下面的命令。

setx PATH "C:\myfolder;%PATH%"

SUCCESS:保存了指定的值。

你可以参考更多在这里。

关于第2点,我使用了一个简单的批处理文件,它为我填充PATH或其他环境变量。因此,默认情况下不存在任何环境变量的污染。这个批处理文件可以从任何地方访问,所以我可以输入:

mybatchfile

输出:

-- Here all environment variables are available

And:

php file.php

如果你已经在你想添加到PATH的目录中,这很方便:

set PATH=%PATH%;%CD%

它适用于标准的Windows cmd,但不适用于PowerShell。

对于PowerShell, %CD%等价于[System.Environment]::CurrentDirectory。

当遇到这个问题时,我不得不重新启动Windows。

我运行的是Windows 7 x64。我手动更新了系统PATH变量。如果我从统计菜单中运行cmd.exe,这可以正常工作。但如果我在Windows资源管理器地址栏中输入“cmd”,它似乎从其他地方加载PATH,而这并没有我的手动更改。

(为了避免怀疑-是的,在重新启动之前,我确实关闭并重新运行了几次cmd,但它没有帮助。)