如何在PowerShell中迭代或获取所有输入参数的列表?
这项工作:如何在PowerShell中迭代或获取所有输入参数的列表?,powershell,Powershell,这项工作: Get-Command $PSCommandPath | %{ $_.Parameters } 但这并不是: Get-Command $PSCommandPath | %{ $_.Parameters | %{ echo $_.Value } } 为什么?参数属性是一个哈希表(字典): Powershell管道将自动“展开”数组和集合,但不会展开哈希表。如果要通过indivudial元素foreach,必须使用.getenumerator()明确地枚举它们 Parameters属
Get-Command $PSCommandPath | %{ $_.Parameters }
但这并不是:
Get-Command $PSCommandPath | %{ $_.Parameters | %{ echo $_.Value } }
为什么?参数属性是一个哈希表(字典): Powershell管道将自动“展开”数组和集合,但不会展开哈希表。如果要通过indivudial元素
foreach
,必须使用.getenumerator()
明确地枚举它们
Parameters属性是一个哈希表(字典): Powershell管道将自动“展开”数组和集合,但不会展开哈希表。如果要通过indivudial元素
foreach
,必须使用.getenumerator()
明确地枚举它们
Parameters属性是一个哈希表(字典): Powershell管道将自动“展开”数组和集合,但不会展开哈希表。如果要通过indivudial元素
foreach
,必须使用.getenumerator()
明确地枚举它们
Parameters属性是一个哈希表(字典): Powershell管道将自动“展开”数组和集合,但不会展开哈希表。如果要通过indivudial元素
foreach
,必须使用.getenumerator()
明确地枚举它们
我不明白你想做什么?你想把结果输入另一个where语句吗?我不明白你想实现什么?你想把结果输入另一个where语句吗?我不明白你想实现什么?你想把结果输入另一个where语句吗?我不明白你想实现什么?你想把结果导入另一个where语句吗?是的!快到了。。但是这:
echo$\.Value.ToString()
发出:System.Management.Automation.ParameterMetadata
而不是参数字符串值。。如何输出参数的文本?和`{foreach($I in$.Parameters.GetEnumerator()){echo$I.Value.ToString()}`给出了相同的:System.Management.Automation.ParameterMetadata
定义“参数的文本”。好的,得到了:Get命令$PSCommandPath{$.Parameters.GetEnumerator()\%{(Get变量$.Key).Value}
是!快到了。。但是这:echo$\.Value.ToString()
发出:System.Management.Automation.ParameterMetadata
而不是参数字符串值。。如何输出参数的文本?和`{foreach($I in$.Parameters.GetEnumerator()){echo$I.Value.ToString()}`给出了相同的:System.Management.Automation.ParameterMetadata
定义“参数的文本”。好的,得到了:Get命令$PSCommandPath{$.Parameters.GetEnumerator()\%{(Get变量$.Key).Value}
是!快到了。。但是这:echo$\.Value.ToString()
发出:System.Management.Automation.ParameterMetadata
而不是参数字符串值。。如何输出参数的文本?和`{foreach($I in$.Parameters.GetEnumerator()){echo$I.Value.ToString()}`给出了相同的:System.Management.Automation.ParameterMetadata
定义“参数的文本”。好的,得到了:Get命令$PSCommandPath{$.Parameters.GetEnumerator()\%{(Get变量$.Key).Value}
是!快到了。。但是这:echo$\.Value.ToString()
发出:System.Management.Automation.ParameterMetadata
而不是参数字符串值。。如何输出参数的文本?和`{foreach($I in$.Parameters.GetEnumerator()){echo$I.Value.ToString()}`给出了相同的:System.Management.Automation.ParameterMetadata
定义“参数的文本”。好的,得到了:Get命令$PSCommandPath{$.Parameters.GetEnumerator()\%{(Get变量$.Key).Value}
Get-Command $PSCommandPath | %{ $_.Parameters.GetType() }
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Dictionary`2 System.Object
Get-Command $PSCommandPath | %{ $_.Parameters.GetEnumerator() | % {echo $_.Value } }