我需要在运行时在 PowerShell 脚本中显示所有配置的环境变量。通常在显示环境变量时,我可以在 shell 中使用以下方法之一(以及其他技术,但这些很简单):
gci env:*
ls Env:
但是,我有一个从另一个程序调用的脚本,当我在脚本中使用上述调用之一时,我没有看到环境变量及其值,而是得到一个 System.Collections.DictionaryEntry
类型列表而不是变量以及他们的价值观。在 PowerShell 脚本中,如何显示所有环境变量?
较短的版本:
gci env:* | sort-object name
这将显示名称和值。
最短版本(变量按名称排序):
gci env:
我终于通过遍历字典中的每个条目来摸索解决方案:
(gci env:*).GetEnumerator() | Sort-Object Name | Out-String
gci
来获取子项?
带有通配符过滤器的简短版本:
gci env: | where name -like 'Pro*'
Get-ChildItem
一起使用。例如:gci env:Pro*
我认为提供的任何答案都与该问题无关。 OP 正在获取对象类型列表(每个成员都相同),而不是实际的变量名称和值。这就是你所追求的:
gci env:* | select Name,Value
短缺:
Get-ChildItem Env:* | Select-Object -Property Name,Value
此命令也适用:
dir env:
dir
和 gci
都是 Get-ChildItem
的别名
如果您使用的是 PowerShellCore,还可以使用 ls env:
list
是什么?我在 PowerShell (Core) v7.2.4 中看不到这样的命令。您是说 ls
吗?如果是这样,那就是 yet another alias for Get-ChildItem
并且已经在问题中说明了。
ls
,抱歉误导,感谢您的更正@LanceU.Matthews
不定期副业成功案例分享
env
太容易了。该死的M$人。gci env:
现在将按Name
对变量进行排序。虽然gci env:*
没有。