我试图在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和系统的稳定性。作为副作用,它将合并用户和系统PATH,并将PATH截断为1024个字符。此命令的效果是不可逆转的。首先备份PATH。有关更多信息,请参阅评论。 不要盲目地复制粘贴。请谨慎使用。

你可以使用setx命令永久地添加一个路径到path:

setx /M path "%path%;C:\your\path\here\"

如果您想设置用户PATH而不是系统PATH,请删除/M标志。

注:

setx命令仅适用于Windows 7及以上版本。 您应该从提升的命令提示符运行此命令。 如果您只想为当前会话更改它,请使用set。

其他回答

警告:此解决方案可能会破坏您的PATH和系统的稳定性。作为副作用,它将合并用户和系统PATH,并将PATH截断为1024个字符。此命令的效果是不可逆转的。首先备份PATH。有关更多信息,请参阅评论。 不要盲目地复制粘贴。请谨慎使用。

你可以使用setx命令永久地添加一个路径到path:

setx /M path "%path%;C:\your\path\here\"

如果您想设置用户PATH而不是系统PATH,请删除/M标志。

注:

setx命令仅适用于Windows 7及以上版本。 您应该从提升的命令提示符运行此命令。 如果您只想为当前会话更改它,请使用set。

这只是修改注册表。现有的进程不会使用这些值。如果一个新进程在此更改之后启动,并且不从其父进程继承旧环境,那么它将这样做。

您没有指定如何启动控制台会话。确保这一点的最佳方法是退出命令shell并再次运行它。然后它应该继承更新后的PATH环境变量。

在命令提示符中,您告诉Cmd使用Windows资源管理器的命令行,在它前面加上start。

因此,启动Yourbatchname。

注意,您必须注册,如果它的名称是batchfile.exe。

可以将程序和文档添加到注册表中,因此在“开始-运行”对话框或快捷方式中输入它们的名称而不输入路径,Windows就可以找到它们。

这是一个通用的reg文件。复制下面的行到一个新的文本文档,并将其保存为anyname.reg。用你的程序或文档编辑它。

在路径中,使用\\分隔键路径中的文件夹名称,就像regedit使用单个\分隔键名称一样。所有reg文件都以REGEDIT4开头。分号将一行转换为注释。符号@表示将值赋给键,而不是指定值。

该文件不必存在。这可以用来设置Word.exe打开Winword.exe。

输入start batchfile将启动iexplorer .exe。

REGEDIT4
;The bolded name below is the name of the document or program, <filename>.<file extension>

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Batchfile.exe]

; The @ means the path to the file is assigned to the default value for the key.
; The whole path in enclosed in a quotation mark ".

@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\""

; Optional Parameters. The semicolon means don't process the line. Remove it if you want to put it in the registry

; Informs the shell that the program accepts URLs.

;"useURL"="1"

; Sets the path that a program will use as its' default directory. This is commented out.

;"Path"="C:\\Program Files\\Microsoft Office\\Office\\"

你已经在另一个答案中知道了路径。也参见doskey /?对于CMD宏(它们只在输入时工作)。

您可以在CMD下执行启动命令。来自Windows资源包技术参考

自动运行

HKCU\Software\Microsoft\Command Processor

Data type Range Default value
REG_SZ  list of commands  There is no default value for this entry.

描述

包含每次启动Cmd.exe时执行的命令。

如何从cmd.exe/Run…打开环境变量窗口对话框

SystemPropertiesAdvanced,点击“环境变量”,没有UAC rundll32 sysdm。cpl,EditEnvironmentVariables直接,可能触发UAC

Windows中的环境变量工具可以直接启动吗?关于服务器故障。

如何从资源管理器打开环境变量窗口

右键点击“这台电脑” 点击“属性” 在弹出窗口的左侧面板上,点击“高级系统设置” 点击“高级”选项卡 点击窗口底部的“环境变量”按钮

您也可以在开始菜单搜索中搜索变量。

参考环境变量窗口的图片:

Windows 10

通过

Windows 7

通过

Windows XP

通过

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

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

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