Windowsバッチファイルでメッセージボックスを無理やり表示させる方法

バッチファイルプログラミング
この記事は約4分で読めます。

Windowsバッチファイル(.bat)でメッセージを表示する場合は、通常「echo」コマンドでプロンプト内に標準出力させるので、メッセージボックスは使えません。
しかし、メッセージボックスの方がユーザーには伝わりやすい…かも。
調べてみると、バッチファイルで無理やりメッセージボックスを表示させる方法がありました。

なお、今回作業したバージョンは以下の通りです。

  • Windows 10 Pro(64bit)
スポンサーリンク

VBScriptと組み合わせてメッセージボックスを表示する

無理やりメッセージボックスを表示する方法は、Microsoftのスクリプト言語である「VBScript」(.vbs)と組み合わせて行います。
VBScriptは、Windows上で標準で動作します。
なので、ソースコードのファイル拡張子を「.vbs」にしてダブルクリックすれば簡単に実行できます。

メッセージボックスを表示するには、VBScriptのMsgBox関数を使用します。
関数の詳細はMicrosoftリファレンスでご確認いただけます。

メッセージボックスを表示するバッチファイル

実際に、メッセージボックスを表示するバッチファイルを作成してみました。
内容は、echoコマンドでVBScriptのメッセージボックスを表示するコードを一時ファイルとして出力し、それを実行するというものです。

@echo off

rem メッセージ表示
echo MsgBox "メッセージを表示します。",vbInformation,"情報" > %TEMP%\msgbox.vbs & %TEMP%\msgbox.vbs

rem ファイル削除
del /Q %TEMP%\msgbox.vbs

pause

これを実行すると、このようにメッセージボックスが表示されます。
そして、TEMPフォルダ(C:\Users\[ユーザー名]\AppData\Local\Temp)にVBScriptファイルが作成されていました。

MsgBox

確かに、エラーや情報などの表示させるだけのメッセージならこちらの方が伝わりやすいかも…。
念のため、次の行で作成したファイルは削除しています。

メッセージボックスの戻り値を取得する

さらに無理やりで、OK/キャンセルボタンのメッセージボックスを使用して、押したボタンを戻り値として取得してみます。
戻り値として取得できるのは、直前に実行したコマンドのエラーコードが格納されている環境変数「ERRORLEVEL」の整数のみですので、これに押したボタンの値を設定します。
OK/キャンセルボタンの値は、以下の通りです。

  • [OK] … 1(vbOK)
  • [キャンセル] … 2(vbCancel)

バッチファイルは、以下のようになりました。

@echo off

rem メッセージ表示
echo Dim answer:answer = MsgBox("よろしいですか?",vbOKCancel,"確認"):WScript.Quit(answer) > %TEMP%\msgbox.vbs & %TEMP%\msgbox.vbs
echo %ERRORLEVEL%

rem ファイル削除
del /Q %TEMP%\msgbox.vbs

pause

上記コードのポイントは以下です。

  • ~:~ … コロンで複数行を1行に連結する。
  • WScript.Quit(0) … 指定されたエラーコードで実行を終了する。

VBScriptでコロン(:)を使用し、1行に連結して3行分書いています。
「WScript.Quit」で、終了時のエラーコードにOK/キャンセルボタンで押したボタンの値を設定しています。
これを実行すると、押したボタンによって「1」か「2」が表示されますので、後はif文で条件分岐などを行えばいいかと思います。
ほんとに無理やり。。

1行で書くなら以下のようにします。
こちらの方がスマートですね。

@echo off

rem メッセージ表示
echo WScript.Quit(MsgBox("よろしいですか?",vbOKCancel,"確認")) > %TEMP%\msgbox.vbs & %TEMP%\msgbox.vbs
echo %ERRORLEVEL%

rem ファイル削除
del /Q %TEMP%\msgbox.vbs

pause

以上です。

スポンサーリンク
スポンサーリンク
プログラミング
えふめん

大阪在住、30代。
業務系SE・社内SEの仕事を通じて学んだこと、PCトラブルで困って調べたこと、手作業を効率化して改善したこと、WordPressのブログ運営などの記事を書いています。

えふめんをフォローする
\よかったらシェアしてね/
この記事が気に入ったら
いいね!しよう
最新情報をお届けします。
俺の開発研究所

コメント

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