PowerShell ISEにカスタムメニューを追加する方法

PowerShell ISEではカスタムメニューを追加することが出来ます。

PowerShell ISE用 の 自動変数 $psIse があるのですが、この変数は CustomMenu というプロパティを持っており、カスタムメニューの追加や削除を行うことが可能です。

・カスタムメニューを追加する

カスタムメニューを追加するには、下記のようにSubMenusプロパティ の Addメソッドを使用します。

$psIse.CustomMenu.Submenus.Add("_Date", {Get-Date}, "Ctrl+D")

上記コマンドを実行すると、下図のように[Custom]-[Date]というメニューが追加されます。

Addメソッドの引数ですが
第1引数: メニュータイトル

_Dateのアンダーバー(_)はホットキーを作成するときに使用します。

アンダーバーの右隣の文字がホットキーとなります。

この例では”D”がホットキーになります。

第2引数: メニュー選択時に実行されるコマンドブロック

この例では {Get-Date}としているので、メニュー選択時にはGet-Dateコマンドレットが実行されます。コマンドを指定しない場合には$nullを指定します。

第3引数: ショートカットキー

この例では Ctrl + D がショートカットキーになります。

ショートカットキーを割り当てない場合には $null を指定します。

上記にて作成したメニューを実行すると、下記のように関連づけたコマンドが実行されます。

・サブメニューを追加する

カスタムメニューにサブメニューをつけたい場合には

1)まずはメニューを追加する。このとき、作成するメニューは変数への代入と同時に行う。

$parentMenu = $psIse.CustomMenu.Submenus.Add("日時", $null, $null)

2) 1)の変数のSubmenus.Addメソッドを実行してサブメニューを作成する。

$parentMenu.Submenus.Add("昨日", {(Get-date).AddDays(-1)}, $null)
$parentMenu.Submenus.Add("今日", {(Get-date).AddDays(0)}, $null)
$parentMenu.Submenus.Add("明日", {(Get-date).AddDays(1)}, $null)

・カスタムメニューを削除する

すべてのカスタムメニューを削除するには

$psIse.CustomMenu.Submenus.Clear()

を実行します。

注意事項)

PowerShell ISE上で直接作成したカスタムメニューの生存期間は、PowerShell ISEが閉じられるまでとなっています。

毎回表示させるにはプロファイルに記述する必要があります。

コメント

タイトルとURLをコピーしました