我开始使用PowerShell,并试图找出如何echo
一个系统环境变量到控制台来读取它。
以下两项均无效。第一个只打印%PATH%
,第二个不打印任何内容。
echo %PATH%
echo $PATH
答案 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
Get-ChildItem
更短,因此更容易记住。没有带有环境变量的层次结构。Set-Item -Path env:SomeVariable -Value "Some Value"
)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