PowerShellでコマンドの終了を知らせるメッセージボックス

コンピュータ
ROBOCOPYというコマンドで多量のファイルをコピーしていて終了を通知する方法を調べてみました。トースト通知がよさそうですが、WinFormsでなじみがあるMessageBox()をPowerShellから呼び出してみたいと思います。

スクリプト

$profileに以下のコードを記述

Add-Type -Assembly System.Windows.Forms
function MsgBox($msg = "終了")
{
    $datestr = (Get-Date).ToString("yyyy/MM/dd HH:mm:ss")
    $title = "{0} PowerShellから通知" -f $datestr
    [System.Windows.Forms.MessageBox]::Show($msg, $title)
}

使い方

コマンドラインで以下のコマンド実行
MsgBox “メッセージ”

サンプル

robocopy f:\ g:\F_20230729\ /E /DCOPY:DAT;msgbox "ROBOCOPY終了"

コメント