PowerShell メッセージボックスの利用
どうも,筆者です.
Power Shellでメッセージボックスを利用したい状況が発生した.
ここでは,メッセージボックスの利用方法を備忘録として残しておく.
準備
Power Shellでメッセージボックスを利用する際は,最初に以下の記述が必要となる.
# アセンブリの読み込み Add-Type -AssemblyName System.Windows.Forms
メッセージボックスのフォーマット
メッセージボックスのフォーマットは以下のようになる.
[System.Windows.Forms.MessageBox]::Show('表示したいメッセージ', 'タイトル', 'ボタンタイプ', 'ボタンの種類')
利用例
ここでは,「テキストファイルを削除する際に確認用のポップアップ(YesNoのメッセージボックス)を表示し,処理結果のポップアップ(OKのメッセージボックス)を表示する」という処理をPower Shellで実現する.
以下のようなスクリプトを書くことで,上記の処理を実現できる.
# アセンブリの読み込み Add-Type -AssemblyName System.Windows.Forms # メッセージボックスの作成 $msgbox_input = [System.Windows.Forms.MessageBox]::Show('.txtファイルを削除しますか?', '削除確認', 'YesNo', 'Question') # 条件処理 switch ($msgbox_input) { 'Yes' { # 強制的に削除 Remove-Item .\*.txt -Force [System.Windows.Forms.MessageBox]::Show('削除しました', '結果', 'OK', 'Information') } 'No' { # 何もしない [System.Windows.Forms.MessageBox]::Show('キャンセルしました', '結果', 'OK', 'Exclamation') } }
おまけ
Power Shellのスクリプトを呼び出すbatファイルのサンプルを以下に示す.ここで,上記のスクリプトを「sample.ps1」として保存したと仮定する.
@echo off cd /d %~dp0 rem セキュリティポリシーを指定して実行 powershell -ExecutionPolicy Unrestricted .\sample.ps1