windows - 检索环境变量的RAW内容[不扩展]

标签 windows batch-file cmd environment-variables

我在处理人偶(配置管理)脚本中的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/

相关文章:

c++ - 枚举窗口时出现问题

c++ - 使用 Visual Studio 2017 的 Crypto++ 库链接错误

regex - 在批处理脚本中打印第二个标记之后的所有标记

windows - 用读取文本文件的for循环替换多行批处理文件

windows - 将打印语句重定向到文件

windows - 如何让 32 位 Perl 读取 64 位 Windows 注册表?

用于更改显示器设置的 Windows 批处理文件

python - 批处理运行时显示或留下 python 错误消息

windows - 如何在不使用 TASKILL [BATCH] 的情况下关闭从 CMD 启动的可执行文件的窗口

windows - cmd.exe/k (echo %1 & echo %~n1) 放入注册表命令项时未按预期输出