[PowerShell V2 CTP3] カスタムメニューをスクリプトから実行する

今回は、PowerShell ISEに追加したカスタムメニューをスクリプトから実行する方法について説明します。

カスタムメニューを追加する方法については 「PowerShell ISEにカスタムメニューを追加する方法」を参照ください。

まずは、下記のように入力してカスタムメニューを作成します。

#カスタムメニューに[Get-Date]というメニューアイテムを追加
$psISE.CustomMenu.Submenus.Add("Get-Date", {Get-Date}, "Ctrl+D")

#カスタムメニューに[日時]というメニューアイテムを追加
$parentmenu = $psISE.CustomMenu.Submenus.Add("日時", $null, $null)
#[日時]の子として[昨日][今日][明日]を追加
$parentmenu.Submenus.Add("昨日",{(Get-Date).AddDays(-1)}, $null)
$parentmenu.Submenus.Add("今日",{(Get-Date).AddDays(0)}, $null)
$parentmenu.Submenus.Add("明日",{(Get-Date).AddDays(1)}, $null)

このようにして作成したカスタムメニューは下記のようになります。

カスタムメニューをスクリプトから実行する方法ですが、ExecuteScriptプロパティを使用します。

まずは [Get-Date]メニューの実行です。

[GetDate]メニューは $psIse.CustomMenu.Submenus[0] と表すことが出来ます。これを実行するには先頭にドットをつけて下記のように記述します。

PS> . $psIse.CustomMenu.Submenus[0].ExecuteScript
2009/04/17 9:00:00

次に[日時]の[明日]を実行してみましょう。 これは$psIse.CustomMenu.Submenus[1] .SubMenus[2] と表すことが出来るので

PS> . $psIse.CustomMenu.Submenus[1].SubMenus[2].ExecuteScript

とします。

補足:

ExecuteScriptはプロパティであるため、先頭にドットをつけないで使用した場合には、登録されているスクリプトが表示されます。

コメント

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