我有两个用户定义的变量:
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 开关在系统环境中设置变量。
请注意,您必须启动一个新的命令行才能使用新的变量。
旧答案 命令 SET 仅在当前命令行会话期间更新变量。
向变量添加值的正确语法是“set [variable]=%[variable]%;[new value]”
请注意,等号左边的百分号必须省略!
答案2
2007 年的一篇 Microsoft 支持文章——编号 329308— 描述了 Shell32.dll 中的一个错误,这是导致此问题的原因。解决方案是将一个PATH
变量添加到用户变量列表中,并将其设置为
%ANT_HOME%\bin;%JAVA_HOME%\bin
这解决了这个问题。我不喜欢只为我的用户设置它,但不知何故我的系统出现了这个旧错误的症状,我还没有看到其他更好的解决方案。