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

uurity8g  于 2022-11-10  发布在  Shell
关注(0)|答案(5)|浏览(361)

我开始使用PowerShell,并试图弄清楚如何将echo系统环境变量发送到控制台来读取它。
以下两种方法都不起作用。第一个只打印%PATH%,第二个不打印任何内容。

echo %PATH%
echo $PATH
tp5buhyn

tp5buhyn1#

变量名称前缀为env

$env:path

例如,如果要打印环境值“minishift_username”的值,则命令为:

$env:MINISHIFT_USERNAME

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

Get-ChildItem env:
n1bvdmb6

n1bvdmb62#

除了马蒂亚斯的回答。
尽管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
...

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

vc6uscn9

vc6uscn93#

在我看来,以下方法效果最好:

Get-Item Env:PATH

1.它比Get-ChildItem更短,因此更容易记住(没有环境变量的层次结构)。
1.该命令与setting environment variables with Powershell使用的方式之一对称。(例如:Set-Item -Path env:SomeVariable -Value "Some Value")
1.如果您养成了这样做的习惯,您将记住如何列出所有环境变量:只需省略条目部分。(例如:Get-Item Env:)
起初我觉得语法很奇怪,但在我理解了提供者的概念后,事情开始变得更有意义了。从本质上讲,PowerShell允许您以类似于文件系统的方式导航系统的不同组件。
Env:中尾随的冒号的意义是什么?试着列出所有通过供应商提供的“驱动器”,如下所示:

PS> Get-PSDrive

我只看到几个结果(Alias、C、Cert、D、Env、Function、HKCU、HKLM、Variable、WSMan)。很明显,Env只是一个特定的“驱动器”,冒号是任何使用过Windows的人熟悉的语法。
您可以像这样遍历驱动器:

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

yacmzcpb4#

这是我自己遇到的。我想查看路径,但每条路径都在一条单独的线上。这会打印出路径,并用分号将其拆分。
$env:path.Split(";")

v8wbuo2f

v8wbuo2f5#

作为对其他答案的补充,
在列出所有环境变量的情况下,为了简洁起见,您可以使用dirlsgci(Get-ChildItem的缩写),因为它们是Get-ChildItem的三个别名。
因此,以下所有命令都是相同的,可以在此上下文中使用:

Get-ChildItem Env:

dir Env:

ls Env:

gci Env:

更多信息请访问shellgeek
此外,作为实际用例,您可以获得按字母顺序排序的环境变量列表,如下所示:

Get-ChildItem Env: | Sort Name

仅供参考:以上命令中不能将Get-Item Env:替换为Get-ChildItem Env:。因此,在这种情况下,GetChild-Itemthis answer by BitBite中提到的Get-Item更可取。

相关问题