32

是否有 PowerShell 命令列出所有以前加载的变量?

我在 Visual Studio 中运行一些 PowerShell 脚本,并想列出当前 PowerShell 会话中可用的所有变量。

我试过命令:

ls variable:*;

但它返回以下内容:

System.Management.Automation.PSVariable
System.Management.Automation.PSVariable
System.Management.Automation.PSVariable
System.Management.Automation.PSVariable
System.Management.Automation.PSVariable
System.Management.Automation.PSVariable
System.Management.Automation.PSVariable
System.Management.Automation.PSVariable
System.Management.Automation.PSVariable
System.Management.Automation.PSVariable
4

2 回答 2

55

ls variable:*应该工作,或者Get-Variable。如果这些导致输出不良,那是由于主机实现不佳,而不是 powershell 本身。如果您打开标准控制台主机(运行 powershell.exe),您将看到这些工作正常。

如果您需要解决一个坏主机,您可能会更好地将所有内容转储到显式字符串:

Get-Variable | Out-String

或者

Get-Variable |%{ "Name : {0}`r`nValue: {1}`r`n" -f $_.Name,$_.Value }
于 2012-09-17T20:59:23.287 回答
7

有趣的是,您只需键入variable,这也可以!

我想通了这一点,因为我很好奇ls variable:*在做什么。Get-Help ls告诉我们它是 PowerShell 的 Get-ChildItem 的别名,我知道它会列出对象的所有子项。所以,我试过了variable,瞧!

基于thisthis,似乎正在做的是告诉它使用列表上的 (all/any) 通配符进行ls variable:*某种范围/命名空间查找,在这种情况下,这似乎是无关紧要的 ( == == ) .*variablels variable:*ls variable:variable

于 2017-10-30T20:04:31.790 回答