【问题标题】:How to print/echo windows environment variables such as PATH without interpreting variables?如何在不解释变量的情况下打印/回显 PATH 等 Windows 环境变量?
【发布时间】:2018-07-24 05:32:32
【问题描述】:

例如在控制面板\系统和安全\系统>高级系统设置>系统属性>高级选项卡>环境变量...

我有以下路径:

值 1:

PATH=%JAVA_HOME%\bin;e:\Groovy\GROOVY~1.0\bin;E:\Python;C:\Users\MyName\AppData\Local\GitHubDesktop\bin;%PYTHON3_HOME%;%GROOVY_HOME%\bin;

在 cmd 中,我会这样做:

echo %PATH%

然后我得到:

价值 2:

E:\Program Files\Java\jdk1.8.0_151\bin;e:\Groovy\GROOVY~1.0\bin;C:\Users\MyName\AppData\Local\GitHubDesktop\bin;E:\Program Files\Python\Python36-32;E:\Program Files (x86)\Groovy\Groovy-2.6.0\bin; 

那么 cmd 中的哪个命令能够打印出与系统属性(值 1)中的变量名称(%JAVA_HOME% 等)完全相同的 PATH 值?

【问题讨论】:

标签: windows batch-file cmd environment-variables echo


【解决方案1】:

set <variableName> 命令显示变量而不解释内容。
或者您也可以为此设置延迟扩展。

setlocal EnableDelayedExpansion
echo !path!

但在您的情况下,echo %path% 中的扩展将不会扩展 PATH 内容中的任何其他百分比部分(您只会遇到&|<> 等其他字符的问题)

在你用set PATH=%JAVA_HOME%\bin设置路径后,内容已经展开了。

当您设置百分比部分而不是扩展版本时,PATH 搜索不再起作用,因为 cmd.exe 会尝试在 %JAVA_HOME% 的文字路径中搜索

要从系统属性中获取路径的定义,可以通过REG QUERY 从注册表中检索。

用户变量与

reg query HKEY_CURRENT_USER\Environment /v path  

系统变量与

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

【讨论】:

    【解决方案2】:

    从 cmd,试试这个:

    powershell gci env:<name_variable>
    

    例如:powershell gci env:Path

    如果您希望所有变量名称以 Path 开头(或结尾),只需在变量名称之后(或之前)添加 *

    例如:powershell gci env:*Path*

    :-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-11
      • 1970-01-01
      • 2013-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-15
      • 2018-04-27
      相关资源
      最近更新 更多