如何在PowerShell中将环境变量打印到控制台?

时间:2018-06-14 15:29:32

标签: powershell

我开始使用PowerShell,并试图找出如何echo一个系统环境变量到控制台来读取它。

以下两项均无效。第一个只打印%PATH%,第二个不打印任何内容。

echo %PATH%
echo $PATH

3 个答案:

答案 0 :(得分:53)

使用env

前缀变量名称
$env:path

您还可以通过env驱动器枚举所有变量:

Get-ChildItem env:

答案 1 :(得分:7)

除了Mathias的答案。

尽管OP中未提及,但如果您还需要查看 Powershell 特定/相关的内部变量,则需要使用Get-Variable

$ Get-Variable

Name                           Value
----                           -----
$                              name
?                              True
^                              gci
args                           {}
ChocolateyTabSettings          @{AllCommands=False}
ConfirmPreference              High
DebugPreference                SilentlyContinue
EnabledExperimentalFeatures    {}
Error                          {System.Management.Automation.ParseException: At line:1 char:1...
ErrorActionPreference          Continue
ErrorView                      NormalView
ExecutionContext               System.Management.Automation.EngineIntrinsics
false                          False
FormatEnumerationLimit         4
...

这些还包括您可能在配置文件启动脚本中设置的内容。

答案 2 :(得分:1)

以下是我认为最好的方法:

Get-Item Env:PATH
  1. 它比Get-ChildItem更短,因此更容易记住。没有带有环境变量的层次结构。
  2. 该命令与setting environment variables with Powershell所使用的一种方式对称。 (例如:Set-Item -Path env:SomeVariable -Value "Some Value"
  3. 如果您习惯以这种方式进行操作,您将记住如何列出所有环境变量;只需省略输入部分。 (例如:Get-Item Env:

我一开始发现语法很奇怪,但是当我理解Providers的概念之后,事情就变得更有意义了。本质上,PowerShell让您以类似于文件系统的方式浏览系统的各个组件。

Env:中尾随冒号的含义是什么?尝试列出通过提供商提供的所有“驱动器”,如下所示:

PS> Get-PSDrive

我只看到一些结果...(<别名>别名,C,证书,D,Env,函数,HKCU,HKLM,变量,WSMan )。显而易见,Env仅仅是另一个“驱动器”,而冒号是Windows中工作人员熟悉的语法。

您可以浏览驱动器并选择特定值:

Get-ChildItem C:\Windows
Get-Item C:
Get-Item Env:
Get-Item HKLM:
Get-ChildItem HKLM:SYSTEM