我在处理人偶(配置管理)脚本中的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 Files\Java\jdk_6u30
)。
那么...可以在不扩展其内容的情况下回显环境变量吗?我只需要在find命令中使用RAW变量,仅此而已。
最佳答案
您可以直接从注册表中读取PATH:
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path
无需扩展即可获得其值(value)。
关于windows - 检索环境变量的RAW内容[不扩展],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9017665/