2010年6月24日木曜日

◆ヘルプをメモ帳で表示する

Get-Help  dir  -Full  |  more

別画面に表示させたほうが便利なこともある。
Get-Help  dir  -Full  |  Out-String  –Stream  |  Out-GridView

通常のコマンドレットはこれでOKだが、about系のHELPはうまく表示されない。(スクロールされない)

メモ帳に出力したほうが良いかも。

Function gh{

    $path = Join-Path  $env:temp  PSHelp.txt
    try{
        Invoke-Expression "Get-Help $args" | Out-File $path -Width 61
    }
    catch{ throw $error[0] }
    notepad $path

}


上記のInvoke-Expressionは、

Get-Help $args  |  Out-File $path -Width 61


でも良さそうだが、こう書いてしまうと
gh  dir  -Full

と入力されたときに、
Get-Help  (dir  -Full)

という感じに解釈されてしまうようだ。
そこで、Get-Expression コマンドを使って、純粋に文字列として命令を実行させている。

また、不正な引数でエラーとなった時にメモ帳が開かないようにtry~catchを使っている。
自分でthrowした場合は、そこで止まってくれるようだ。

Invoke-Expression  “aaa” –ErrorAction  Stop ; notepad

これではメモ帳が開くのを抑止できない。(Invoke-Expression がStopするだけなのかな)

あれ、 gh  dir  -f  はCatchしてくれるけど、gh  hoge はCatchしてくれないなぁ。

ん~。

0 件のコメント:

コメントを投稿