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


9

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

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

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

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

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

我似乎记得在旧的Windows XP系统上可以正常工作。如何在Windows 7上进行设置?


我刚刚在2007年找到了一篇Microsoft支持文章,描述了Shell32.dll中的错误。我在我的用户变量列表中添加了一个PATH变量,并将PATH设置为%PATH%;%ANT_HOME%\ bin;%JAVA_HOME%\ bin并解决了该问题。我不喜欢仅为我的用户设置它,但是我的系统以某种方式呈现了这个旧错误的症状,我看不到其他更好的答案。文章位于:support.microsoft.com/kb/329308
Michael Prescott

Answers:


5

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

关于Windows中的变量扩展,存在一些一般性问题。我已经遇到了相同的问题,没有发现明确的,可重现的情况-扩展失败的递归级别不一致,特殊字符似乎没有作用,等等。

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

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

GUI方法:

在Windows 7上,只需在META-Prompt中键入“ system”,您将看到一个条目“ Edit the System Environment Variables”。在此处,单击“环境变量”。在这里,您可以编辑系统变量PATH(底部列表),也可以在用户环境变量中添加/编辑新的PATH变量。

命令行方法:

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

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

  • 您还可以向系统变量PATH添加一个值。为此,您首先需要调出具有管理员权限的命令行。要做到这一点,打梅塔(Windows)中的关键,类型cmd和命中CTRL+ SHIFT+ ENTER和确认UAC对话框。

要将新值添加到路径,现在可以输入

setx path "%path%;yournewpath" /m

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

请注意,您必须调出新的命令行才能使用新变量。

TechNet上还有SETX完整参考

旧答案 命令SET仅在当前命令行会话的持续时间内更新变量。

为变量添加值的正确语法是'set [variable] =%[variable]%; [new value]`

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

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


1
感谢您的非常详细的回复。我个人一直比较喜欢GUI方法,因为我认为与我的团队进行交流比较容易。为了清楚起见,我在原始帖子中强调了我遇到的问题。用户变量在Windows 7中没有像在Windows XP中那样扩展。这将不再起作用,还是我应该调查可能阻止通常行为的安全性或其他系统管理员设置?
Michael Prescott

这是一个非常不错的说法,“您完全是重点”;)
Tobias Plutat 2011年

...现在是我在实际问题上的2美分。查看最新答案编辑。
Tobias Plutat 2011年

1

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

%ANT_HOME%\bin;%JAVA_HOME%\bin

解决此问题。我不喜欢仅为我的用户设置它,但是我的系统以某种方式显示了这个旧错误的症状,并且我还没有其他更好的答案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.