如何将用户定义的环境变量附加到 Windows 7 中的系统变量 PATH?

如何将用户定义的环境变量附加到 Windows 7 中的系统变量 PATH?

我有两个用户定义的变量:

ANT_HOME 设置为 %USERPROFILE%\Developer\Tools\Apache\Apache Ant\apache-ant-1.8.2 JAVA_HOME 设置为 C:\Program Files\Java\jdk1.6.0_23

我想将这些路径附加到系统变量中,以便我可以访问其 bin 文件夹中的可执行文件。我试过了

PATH设置为[其他路径];%ANT_HOME%\bin;%JAVA_HOME%\bin

但是,这不起作用。当我打开命令提示符并回显 %PATH%用户变量未扩展。因此路径只显示文字,;%ANT_HOME%\bin;%JAVA_HOME%\bin

我记得这个功能在我的旧 Windows XP 系统上运行良好。如何在 Windows 7 上进行设置?

答案1

更新 2 - 现在实际的问题:为什么嵌套的用户创建的变量无法扩展?

Windows 中存在一些与变量扩展有关的常见问题。我已经遇到过同样的问题,但没有发现明确、可重现的情况 - 扩展失败的递归级别不一致、特殊字符似乎不起作用等。

我发现唯一可行的解​​决方法是逐级递归添加变量。这意味着:尝试删除所有想要嵌套的变量(包括从 PATH 到用户定义变量的调用),然后从头开始。定义基本变量(例如 ANT-HOME),提交,检查它是否已扩展,如果已扩展,则继续下一级提交,检查...您明白了。

更新答案 - 使用 CLI 和 GUI 定义永久环境变量-向下滚动查看原始答案

GUI 方法:

在 Windows 7 上,只需在 META-Prompt 中输入“system”,您就会看到一个条目“编辑系统环境变量”。从那里,单击“环境变量”。在那里,您可以编辑系统变量 PATH(底部列表)或向用户环境变量添加/编辑新的 PATH 变量。

命令行方法:

要永久更改环境变量,您必须在 Windows 命令行中使用 SETX 命令。与其他版本的 Windows 不同,它是 Windows 7 内置的。它的语法与 SET 有很大不同,但功能也很强大。不过,您必须小心一点,使用 SETX 很容易弄乱变量。

  • 默认情况下,你更改用户变量。您可以拥有一个 PATH 用户环境变量,它与系统 PATH 变量共存。如果您尚未定义它,请键入以下内容进行定义:SETX PATH yourpath

  • 您还可以向系统变量 PATH 添加值。为此,您首先需要以管理员权限调出命令行。为此,请按 Meta(Windows)键,键入cmd并按CTRL+ SHIFT+ENTER并确认 UAC 对话框。

要向路径添加新值,您现在可以输入

setx path "%path%;yournewpath" /m

遵循该语法很重要!如果您不先包含 %path%,则路径的所有现有值将丢失,并且仅替换为新路径。 最后的 /m 开关在系统环境中设置变量。

请注意,您必须启动一个新的命令行才能使用新的变量。

还有一个TechNet 上有关 SETX 的完整参考

旧答案 命令 SET 仅在当前命令行会话期间更新变量。

向变量添加值的正确语法是“set [variable]=%[variable]%;[new value]”

请注意,等号左边的百分号必须省略!

来源:Windows Server 的 TechNet 命令行参考

答案2

2007 年的一篇 Microsoft 支持文章——编号 329308— 描述了 Shell32.dll 中的一个错误,这是导致此问题的原因。解决方案是将一个PATH变量添加到用户变量列表中,并将其设置为

%ANT_HOME%\bin;%JAVA_HOME%\bin

这解决了这个问题。我不喜欢只为我的用户设置它,但不知何故我的系统出现了这个旧错误的症状,我还没有看到其他更好的解决方案。

相关内容