作業中のメモ

よく「計算機」を使って作業をする.知らなかったことを中心にまとめるつもり.

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