2011年10月19日水曜日

◆Windows PowerShell Command Builder

こんなツールが提供されているようです。
2011-10-19 09h30_06

VerbsもしくはNounsを選択するとそれぞれ対応するVerbs、Nounsが絞りこまれてその組合せを指定できます。
VerbsとNounsが決まるとそれに対応するパラメータが表示されます。

Office用として提供されているようなので対象Productsで選択できるのは、
2011-10-19 09h36_55

といった感じになっていますが、今後他のサーバー用モジュール向けにも提供されると良いですね。(既にあるのかもしれませんが)

ちなみにV3のISEでは画面右側に上記と似たようなペインが表示されて、コマンドを選ぶと、対応したパラメータをGUIで指定できるようになっています。
2011-10-19 09h43_49

こちらは、VerbsとNounsの組合せではなく単純に一覧からコマンドを選択するようです。

なお、こいつはコマンドラインでも

PS>Show-Command Get-ChildItem

などとやると表示されます。
2011-10-19 09h50_15

今のところ、PassThruとかはないので一連のコマンドに組み込むときはコピーして貼り付けるしかなさそうです。

2 件のコメント:

  1. 私もCommand Builderの記事を見かけて真っ先にShow-Commandを連想した一人です^^;
    しかしこちらはコマンドやプログラミングにそれほど精通してない方向けかなとも思いました。
    いずれにしても選択肢が増えるのはいいことだと思います。

    さてShow-Commandですが、たしかにPassThruパラメータはありませんが実行したコマンドの結果は普通にパイプラインに書き出されるので、パイプラインの発火点?(要するにパイプラインの先頭)で使うかぎりにおいては、問題なくコマンドに組み入れられると思いますがいかがでしょうか?

    具体的には
    Show-Command Get-ChildItem|% fullname
    などが通ります。

    ただしShow-Commandで実行するコマンドレットのデフォルトパラメータを指定するパラメータはないっぽいので、二つ目以降のパイプラインではあまり使いでがない感じはします。

    PSv3で追加されたシェル変数$PSDefaultParameterValuesを使えばそれもある程度は可能になるのかな?とも思いますが、微妙かもしれません。

    例です。
    Get-ChildItem|%{$PSDefaultParameterValues = @{"Write-Host:Object" = $_};Show-Command Write-Host}

    返信削除
  2. いつもコメントありがとうございます。

    ご指摘の通り、PassThru指定がなくても元々そのような動作になっていますね。(__)

    PassThruというよりはISEで「Run」の隣の「Insert」を押した時の様な動作といった感じでしょうか。
    ただ、そもそもパイプラインの途中でShow-Commandと入力する時点で無理な相談ですよね。
    わざわざ別プロセスで開くのもちょっと面倒なので、PFキーとかに組み込まれたりすると良いのですかね・・・。

    現状では予めコピーしておいてからパイプラインの途中に貼付けるしかなさそうですね。

    $PSDefaultParameterValuesを使う方法は興味深く拝見致しました。

    返信削除