给定任何 Cmdlet (Powershell v3),我想获取仅包含选定属性(例如名称和类型)的参数列表。JSON 格式的输出应该类似于:
[
{
"Name": "Path",
"ParameterType": "string"
},
{
"Name": "Filter",
"ParameterType": "string"
},
{
"Name": "Recurse",
"ParameterType": "switch"
}
]
我有参数集合,但似乎不能只选择我想要的那些参数:
$cmd = gcm Get-ChildItem
$parameters = $cmd.Parameters.Values
for($i=0; $i -lt $parameters.Count; $i++) {
$parameters[$i] = Select-Object Name,ParameterType -InputObject $parameters[$i]
}
$parameters | ConvertTo-JSON -depth 1
我得到所有参数:
[
{
"Name": "Path",
"ParameterType": "string",
"ParameterSets": "System.Collections.Generic.Dictionary`2[System.String,System.Management.Automation.ParameterSetMetadata]",
"IsDynamic": false,
"Aliases": "",
"Attributes": "System.Management.Automation.ParameterAttribute System.Management.Automation.ArgumentTypeConverterAttribute",
"SwitchParameter": false
},
{
"Name": "Filter",
"ParameterType": "string",
"ParameterSets": "System.Collections.Generic.Dictionary`2[System.String,System.Management.Automation.ParameterSetMetadata]",
"IsDynamic": false,
"Aliases": "",
"Attributes": "System.Management.Automation.ParameterAttribute System.Management.Automation.ArgumentTypeConverterAttribute",
"SwitchParameter": false
},
...
]