我开始使用 PowerShell,正在尝试弄清如何将系统环境变量echo
到控制台以读取它。
以下两种方法都不起作用。第一种只打印%PATH%
,第二种则什么都不打印。
echo %PATH%
echo $PATH
我开始使用 PowerShell,正在尝试弄清如何将系统环境变量echo
到控制台以读取它。
以下两种方法都不起作用。第一种只打印%PATH%
,第二种则什么都不打印。
echo %PATH%
echo $PATH
将变量名以env
作为前缀:
$env:path
MINISHIFT_USERNAME
的值,那么命令将会是:$env:MINISHIFT_USERNAME
Get-ChildItem env:
$Env:Path.Split(';')
(每行输出一个目录)。 - Bill_Stewart$env:Path -split ';'
。 - Mathias R. Jessen-split
是一个正则表达式运算符,String.Split()
不是。 - Mathias R. Jessengci env:
的命令。 - btwiuseget-alias
列出更多内容,包括 gal
(可以通过 get-alias | where {$_.Name -like '*al*'}
找到),此外 gal | gm
显示所有属性名称,where
可以过滤。get-command
(gcm
)、get-help
(help
)、help gcm
和 help help
也可能有所帮助。 - samus$env:PATH
,其中 PATH 是大写的。 - Aitor Aznar Álvarez{{在我的观点中,以下方法最为适用:}}
Get-Item Env:PATH
Get-ChildItem
更短,因此更容易记忆(环境变量没有层次结构)。Set-Item -Path env:SomeVariable -Value "Some Value"
)Get-Item Env:
)起初我觉得语法很奇怪,但在理解提供程序的概念后,事情开始变得更有意义了。基本上,PowerShell使您能够以类似于文件系统的方式浏览系统的不同组件。
Env:
中的冒号有什么意义?尝试像这样列出通过提供程序可用的所有“驱动器”:
PS> Get-PSDrive
Env
只是一个特定的“驱动器”,冒号语法对于任何使用过Windows的人来说都是熟悉的。Get-ChildItem C:\Windows
Get-Item C:
Get-Item Env:
Get-Item HKLM:
Get-ChildItem HKLM:SYSTEM
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
...
这些还包括您可能在配置文件启动脚本中设置的东西。
我自己也遇到了这个问题。我想查看路径,但是每个路径需要单独显示在一行上。这段代码会打印出路径,并通过分号拆分路径:
$env:path.Split(";")
作为其他答案的补充,
在列出所有环境变量的情况下,为了简洁命令,您可以使用dir
、ls
和gci
(Get-ChildItem的缩写),因为它们是Get-ChildItem
的三个别名。
因此,在这种情况下,以下所有命令都是相等的,可以使用:
Get-ChildItem Env:
dir Env:
ls Env:
gci Env:
更多信息请查看 shellgeek。
另外,作为一个实用案例,你可以按字母顺序获取环境变量的列表,根据 Name
或 Value
进行排序,像这样:
Get-ChildItem Env: | Sort Name
Get-ChildItem Env: | Sort Value
FYI: 在上述命令中,您不能使用Get-Item Env:
替换Get-ChildItem Env:
(列表不会排序并保持不变)。因此,在这种情况下,Get-ChildItem
可能优于BitBite的此答案中提到的Get-Item
。
最后,您可以像这样对环境变量的特定记录的值进行排序:
(Get-ChildItem Env:PATH).Value.Split(';') | Sort
Path
的值。 - EBGreen