如何在不解释变量的情况下打印/回显Windows环境变量(例如PATH)?

时间:2018-07-24 05:32:33

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

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

我具有以下PATH:

值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值?

2 个答案:

答案 0 :(得分:2)

set <variableName>命令在不解释内容的情况下显示变量。
或者,您也可以为此延迟扩展。

setlocal EnableDelayedExpansion
echo !path!

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

使用set PATH=%JAVA_HOME%\bin设置路径后,内容已经扩展。

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

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

带有

的用户变量
reg query HKEY_CURRENT_USER\Environment /v path  

和系统变量

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

答案 1 :(得分:0)

从cmd中尝试:

powershell gci env:<name_variable>

示例:powershell gci env:Path

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

示例:powershell gci env:*Path*

:-)