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が閉じられるまでとなっています。
毎回表示させるにはプロファイルに記述する必要があります。
コメント