2011年5月20日金曜日

◆特定のパラメータを持つコマンドレットを表示する

recurseパラメータを持つコマンドレットを表示するにはこんな感じ。

PS>Get-Help * -Parameter recurse

Name                              Category  Synopsis
----                              --------  --------
Get-ChildItem                     Cmdlet    1 つ以上の
Get-WmiObject                     Cmdlet    Windows Ma
Remove-Item                       Cmdlet    指定した項
Copy-Item                         Cmdlet    名前空間内

コマンド名を求めるだけならばこれでOKなのだが、実際このコマンドを使って何かをしたいとなるとこれでは不十分。

コマンド自体を取得したい場合は以下のようにすると良い。

PS>Get-Command -CommandType cmdlet | ?{$_.parameters.keys -contains "recurse"}

CommandType     Name                                                          Definition
-----------     ----                                                          ----------
Cmdlet          Copy-Item                                                     Copy-Item [
Cmdlet          Get-ChildItem                                                 Get-ChildIt
Cmdlet          Get-WmiObject                                                 Get-WmiObje
Cmdlet          Remove-Item                                                   Remove-Item

parametersはDictionaryオブジェクトのようなので、そのメソッドであるContainsKeyを使っても良いかもしれない。

PS>Get-Command -CommandType cmdlet | ?{$_.parameters.ContainsKey("recurse")}

CommandType     Name                                                          Definition
-----------     ----                                                          ----------
Cmdlet          Copy-Item                                                     Copy-Item
Cmdlet          Get-ChildItem                                                 Get-ChildI
Cmdlet          Get-WmiObject                                                 Get-WmiObj
Cmdlet          Remove-Item                                                   Remove-Ite

0 件のコメント:

コメントを投稿