检索环境变量的RAW内容[无扩展]

时间:2012-01-26 11:43:52

标签: windows batch-file cmd environment-variables

我在puppet(配置管理)脚本中处理Windows环境变量时遇到问题。我的脚本处理资源的静默安装和他们的需求配置(环境变量,文件等)。

我的问题来了。我的一个脚本在Windows系统中安装JDK,这意味着安装可执行文件,配置JAVA_HOME和JRE_HOME并将%JAVA_HOME%/bin包含到%PATH%中。这很容易通过setx命令执行,但在执行第二次执行脚本时遇到问题:PATH变量最终为%PATH%;%JAVA_HOME%/bin;%JAVA_HOME%/bin(进一步执行将意味着更长的变量)。

此副作用的解决方案是仅当%PATH%尚未包含%JAVA_HOME / bin且仅在默认情况下不扩展变量时才能通过echo %PATH% | find "%JAVA_HOME/bin"执行该命令...

我不得不说,上一个命令失败是因为JAVA_HOME包含其版本(如C:\Program Files\Java\jdk_6u30)。

那么......有可能在不扩展其内容的情况下回显环境变量吗?我只需要在find命令中使用RAW变量,仅此而已。

1 个答案:

答案 0 :(得分:0)

您可以直接从注册表中读取PATH:

reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path

这样可以在没有扩展的情况下获得它的价值。