从命令行列出所有环境变量


931

是否可以从Windows的命令提示符中列出所有环境变量?

等同于PowerShell的gci env:ls env:dir env:)。


1
有人可以共享PowerShell解决方案吗?它应该是未来和所有。对?
布鲁诺·布鲁诺斯基

1
@BrunoBronosky PS解决方案已包含在问题中,并且还有一个重复的答案=)
Jon

有关每一项的说明,请参见ss64.com/nt/syntax-variables.html
Samuel Harmer

Answers:


1351

做就是了:

SET

您还SET prefix可以查看名称以开头的所有变量prefix

例如,如果您只想从环境变量中读取derbydb,请执行以下操作:

set derby 

...您将获得以下信息:

DERBY_HOME=c:\Users\amro-a\Desktop\db-derby-10.10.1.1-bin\db-derby-10.10.1.1-bin

7
这提示我输入名字吗?
CMCDragonkai 2013年

53
@KevinMeredith:Windows Shell中的所有命令都不区分大小写。
2013年

12
@CMCDragonkai您在使用Powershell吗?似乎它已使用其命令之一来设置集。这是它不太有用的功能之一!我问了一个有关在此处
JonnyRaa 2014年

2
有人可以更新它以包含PowerShell解决方案吗?它应该是未来和所有。对?
布鲁诺·布鲁诺斯基

3
@NickTimmer,因为您是在谈论bash而不是Windows Shell,所以这对您来说是错误的问题/答案。看看printenv
乔恩

167

乔恩(Jon)的答案是正确的,但要使用语法语法进行详细说明。

SET | more

使您一次只能一页查看变量,而不是全部查看,或者

SET > output.txt

将输出发送到文件output.txt,您可以在记事本中打开文件或其他任何文件...


7
我不知道more在Windows上存在+1
ardnew的消息

它实际上也内置在某些功能中。例如,Dir的页面将带有/ p。
约翰·罗德

@ardnew:现在您知道更多了;-)
user2943111

106

要列出PowerShell中的所有环境变量:

Get-ChildItem Env:

或按照user797717的建议避免输出截断:

Get-ChildItem Env: | Format-Table -Wrap -AutoSize

来源:创建和修改环境变量Windows PowerShell本周提示


4
即使我不使用PowerShell,因为它不适用于每个cmd命令,这也是不费吹灰之力即可漂亮打印(两列)的唯一解决方案。为了在cmd中实现相同的行为,您需要像这样的东西for /f "tokens=1,2 delims==" ...,它变得非常复杂...
ROMANIA_engineer

6
为了避免输出被截断,我将使用以下内容:Get-ChildItem Env: | Format-Table -Wrap -AutoSize
user797717 '17

1
gci env:相反Get-ChildItem Env:,更容易记住
Matson Kepson

完善!我不明白为什么这不是坦白的回答:/编辑:哦,等等,我明白了为什么……最初的问题不是关于如何在Powershell中进行操作,而是在老派中指令提示:D
Yoeri Van Nieuwerburg

79

只需set从运行cmd

显示,设置或删除环境变量。使用不带参数的set可以显示当前环境设置。


11

您可以SET在cmd中使用

要显示当前变量,就SET足够了

要显示某些变量,例如'PATH',请使用SET PATH

如需帮助,请键入set /?


2
这与现有答案有何不同?
彼得·莫滕森

7

不要浪费时间。在注册表中搜索它:

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

返回小于SET命令的值。


2
尽管这可能是正确的,但区别在于注册表查询返回未扩展的REG_EXPAND_SZ键。例如,reg query "HKCU\Environment"向我显示我的%TEMP%变量取决于的值%USERPROFILE%,因此,如果该值发生变化,的值也将变化%TEMP%。相反,SET只是返回"C:\Users\mpag\AppData\Local\Temp"
mpag

1
为什么说“不要浪费时间”?在命令提示符下写“ set”的速度不是比“ reg query ...”快吗?
Alexandre Huat

4

如果要查看刚刚设置的环境变量,则需要打开一个新的命令窗口。

使用setx变量设置的变量仅在以后的命令窗口中可用,而在当前命令窗口中不可用。(Setx,示例


4

如其他答案所述,您可以使用set列出所有环境变量或使用

set [environment_variable] 获得具有其值的特定变量。

set [environment_variable]= 可用于从工作空间中删除变量。


1
是的,但这如何回答问题?
彼得·莫滕森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.