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



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

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

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

我不得不说,前面的命令失败了,因为JAVA_HOME包含它的版本(如C:Program FilesJavajdk_6u30)。

所以。。。是否可以在不扩展其内容的情况下回显环境变量?我只需要find命令中的RAW变量,仅此而已。

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

reg query "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment" /v Path

这将允许在不扩展的情况下获得其价值。

最新更新