重启后无法正确识别PATH环境变量(Win 8.1)

时间:2014-10-14 09:14:56

标签: batch-file jboss environment-variables windows-8.1

我的PATH变量存在问题。我在版本7.1.1 Final中安装了JBOSS-AS并设置了环境变量(希望它是正确的术语,因为我的操作系统是德语)JBOSS_HOME到我安装它的路径:C:\ Program Files \ jboss-as-7.1.1.Final。

然后我添加了%JBOSS_HOME%\ bin;到PATH系统变量。
重新启动cmd后,我可以通过它的名称调用该bin文件夹中的所有内容(大多数是* .bat文件),而不指定通向它的完整路径。所以进展顺利。但后来我重新启动了我的电脑,它再也没有工作了。我不得不去环境变量,选择PATH,编辑...然后点击确定(不改变任何东西)来制作 cmd再次识别它。
奇怪的是,echo%JBOSS_HOME%返回正确的路径并且echo%PATH%返回:

C:\窗口\ system32; C:\ WINDOWS; C:\ Windows \ System32下\ WBEM; C:\ Windows \ System32下\ WindowsPowerShell \ V1.0 \; C:\ Python27; C:\ Program Files \ nodejs \; C:\ Program Files(x86)\ Git \ bin; C:\ Program Files(x86)\ Git \ cmd;%JAVA_HOME%\ bin;%M2_HOME%\ bin;%JBOSS_HOME%\ bin; C:\ Program Files(x86)\ Notepad ++; C:\ Users \ Markus \ AppData \ Roaming \ npm

所以%JBOSS_HOME%\ bin仍在那里......

任何想法这里发生了什么?

1 个答案:

答案 0 :(得分:0)

感谢@MichaelS我至少现在知道该问题的解决方法:

当您通过命令行或批处理文件添加环境变量时似乎工作正常,但我不知道为什么,因为环境变量GUI看起来与以前一样,当我手动添加它们时。

以下是我使用的批处理文件的内容(对于命令行,请参见下文):

setx JBOSS_HOME "C:\Program Files\jboss-as-7.1.1.Final" /M
setx PATH_OLD "%PATH%" /M
setx PATH "%PATH%%%JBOSS_HOME%%\bin;" /M

setx设置(和覆盖!)环境变量。
多个%-signs将转义%JBOSS_HOME%变量,因此它不会以" C:\ Program Files \ jboss-as-7.1.1.Final"。
结束 %% 将是单%,而单%将使变量扩展到它的内容。因此,在这种情况下,%PATH%将成为%PATH%变量的内容,而%% JBOSS_HOME %%将成为%JBOSS_HOME%。
/ M 使环境变量系统范围不仅适用于您的用户。为此,您需要使用管理员权限打开文件,否则它将无法正常工作。

如果你直接使用批处理文件而命令行,我认为转义字符是^,但我没试过。所以命令是:

setx JBOSS_HOME "C:\Program Files\jboss-as-7.1.1.Final" /M
setx PATH_OLD "%PATH%" /M
setx PATH "%PATH%^%JBOSS_HOME^%\bin;" /M

另外,我必须事先重命名名为PATH的用户环境变量(并在之后撤消它),因为%PATH%连接系统和用户环境变量,这将添加用户的内容变量到系统变量。

我只设置PATH_OLD以防出现问题,我相信它是推荐的但不是我想要做的事情。