2016-10-25 7 views
0

Cmdlet(Powershell v3)があれば、選択したプロパティ(名前や型など)のみを持つパラメータのリストを取得したいと考えています。 JSONとして出力するような何か必要があります。Powershellのパラメータの選択されたプロパティを取得するCmdLet

[ 
     { 
       "Name": "Path", 
       "ParameterType": "string" 
     }, 
     { 
       "Name": "Filter", 
       "ParameterType": "string" 
     }, 
     { 
       "Name": "Recurse", 
       "ParameterType": "switch" 
     } 
] 

私はパラメータのコレクションを持っていますが、私は私がしたいパラメータのみを選択するように見えることはできません。

[ 
     { 
       "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 
     }, 
... 
] 

$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 

は、私はすべてのパラメータを取得します

答えて

1
$cmd = gcm Get-ChildItem 
$cmd.Parameters.Values | 
    Select Name,ParameterType,SwitchParameter | 
    ConvertTo-Json -depth 1 

結果:

[ 
     { 
       "Name": "Path", 
       "ParameterType": "string[]", 
       "SwitchParameter": false 
     }, 
     { 
       "Name": "LiteralPath", 
       "ParameterType": "string[]", 
       "SwitchParameter": false 
     }, 
     { 
       "Name": "Filter", 
       "ParameterType": "string", 
       "SwitchParameter": false 
     }, 
     ... 
] 
+2

「foreach」は本当に必要ありません。 – PetSerAl

+0

ちょうど感謝気づいた! – Marc

関連する問題