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

Batch file 重新启动后无法正确识别PATH环境变量(Win 8.1),batch-file,jboss,environment-variables,windows-8.1,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\u HOME%\bin;指向路径系统变量。 重新启动cmd后,我可以按名称调用bin文件夹中的所有内容(主要是*.bat文件),而无需命名指向它的完整路径。所以进展顺利。但后来我重新启动了我的电脑,它不再工作了。

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

然后我添加了%JBOSS\u HOME%\bin;指向路径系统变量。
重新启动cmd后,我可以按名称调用bin文件夹中的所有内容(主要是*.bat文件),而无需命名指向它的完整路径。所以进展顺利。但后来我重新启动了我的电脑,它不再工作了。我必须去环境变量,选择路径,编辑。。。然后klick OK(不做任何更改)使 我再也认不出来了
奇怪的是,echo%JBOSS\u HOME%返回正确的路径,echo%path%返回:
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Python27;C:\ProgramFiles\nodejs\;C:\ProgramFiles(x86)\Git\bin;C:\ProgramFiles(x86)\Git\cmd;%JAVA_HOME%\bin;%M2\U HOME%\bin;%JBOSS_HOME%\bin;C:\ProgramFiles(x86)\Notepad++;C:\Users\Markus\AppData\Roaming\npm

所以%JBOSS\u HOME%\bin仍然在那里。。。


知道这里发生了什么吗?

多亏了@MichaelS,我现在至少知道了解决这个问题的方法:

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

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

setx设置(和覆盖!)环境变量
多个%-符号用于转义%JBOSS_HOME%-变量,这样它就不会以“C:\Program Files\JBOSS-as-7.1.1.Final”结尾。
%%将是单个%,而单个%将使变量扩展到其内容。因此,在这种情况下,%PATH%将成为%PATH%变量的内容,而%%JBOSS\u HOME%%将成为%JBOSS\u 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,我相信这是推荐的,但对于我想做的事情来说不是必需的。

如何设置变量?您使用的是命令行还是GUI界面?是否在系统环境表中也设置了环境变量JBOSS_HOME?如果按住Windows键并另外按Pause键,即Win+Pause,系统控制面板窗口将打开(Win95之后的所有Windows操作系统)。左侧有高级系统设置。单击此链接将打开一个对话框窗口,其中包含“高级”选项卡。还有一个按钮是环境变量。单击它,您将看到两个环境变量列表-一个仅用于您的用户帐户,另一个用于系统(=所有帐户)。确保在同一个列表中进行这两个修改。我使用了Windows提供的GUI界面(在遵循Mofis说明时,您将使用该界面),并将JBOSS_HOME和PATH中的新条目添加到系统变量中。不过,在用户环境变量中还有另一个PATH变量。您可以在上面列表的末尾看到“C:\Users\Markus\AppData\Roaming\npm”。我如何通过命令行设置变量?也许我会试试看//编辑:nevermind,在此处了解如何做到这一点:
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