Windowsバッチファイルでメッセージボックスを無理やり表示させる方法 | 俺の開発研究所

プログラミング|俺の開発研究所 プログラミング「プログラミング」の記事一覧です。

Windowsのバッチファイル(.bat)でメッセージを表示する場合、プロンプトに標準出力を表示するためにechoコマンドを使用するので、メッセージボックスは使用できない。
しかし、メッセージボックスの方がユーザーにはわかりやすい......かもしれない。
バッチファイルの中にメッセージボックスを表示させることは可能だった。

この時使用したのはこのバージョンです。

  • Windows 10 Pro (64ビット)

メッセージボックスの表示には、VBScriptを使用します。

Microsoftのスクリプト言語であるVBScript(.vbs)を併用することで、メッセージボックスを強制的に表示させることができます。
VBScriptは、Windows上で自動的に実行されます。
拡張子が".vbs "のソースコードファイルをダブルクリックするだけで実行できます。
メッセージボックスを表示するには、VBScriptのMsgBox関数を使用します。
この関数の詳細については、マイクロソフトのリファレンスに記載されています。

メッセージボックスの表示用バッチファイル

メッセージボックスを表示するために、バッチファイルを作成しました。
EchoはVBScriptのメッセージを表示するコードを一時ファイルから出力し、実行します。

@echooffrem message displayechoMsgBox ,vbInformation, "Information" > %TEMP%msgbox.vbs & %TEMP%msgbox.vbsrem delete file del /Q %TEMP%gmsgbox.vbspause

このようなメッセージボックスが表示されます。
そして、VBScriptファイルはTEMPフォルダ(C: \Users[Username]↵AppData↵LocalTemp)内に作成されました。

MsgBox

エラーや情報を表示することが目的であれば、このような方法でメッセージを伝えることができるかもしれません。....
次の行で作成されたファイルは、念のため削除しています。

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

今度は、OK/Cancelボタンの下にあるメッセージボックスを使って、押したボタンの戻り値を求めてみます。
戻り値として使用できるのは1つの値だけです。それは、環境変数「ERRORLEVEL」の整数値で、前のコマンドのエラーコードが格納されています。そこで、ボタンの値を設定します。
以下は、OK/キャンセルボタンの値です。

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

これがバッチファイルです。

@echooffrem メッセージ表示 echo Dim Answer:answer =MsgBox ("Are You Sure?") ,vbOKCancel, "Confirm"):WScript.Quit(answer) > %TEMP%msgbox.vbs & %TEMP%msgbox.vbsecho %ERRORLEVEL%rem delete file del /Q %TEMP%msgbox.vbspause

以上がコードのキーポイントです。

  • を使うと...複数行をコロンで結合する。
  • Quit(0)・・・・・・。指定されたエラーコードの実行を停止する。

Quit(0)...指定されたエラーコードの実行を停止する。
"Quit "し、OK/Cancelキーでボタンの値を変更し、プログラムを終了します。
これでコマンドが実行されます。どのボタンが押されたかによって、"1 "と "2 "が表示されます。あとは、if文を使って条件分岐させます。
これはちょっと無理があるかな...。

このような手順を踏めば、たった1行でメッセージを書くことができます。
だいぶスマートになりましたね。

Quit(MsgBox("Are you sure?"),vbOKCancel) ,vbOKCancel, "Confirm")))> %TEMP%MSGbox.vbs & %TEMP%MSGbox.vbsecho %ERRORLEVEL%rem delete file del /Q %TEMP%MSGbox.vbspause

最後に

今回は、Windowsのバッチファイル(.bat)を使って、メッセージボックスを作成する方法を紹介しました。
強引ではありますが、ユーザーにとっては理解しやすい方法ではないでしょうか。....

関連読書:

ドラゴンボール超 スーパーヒーロー:「ブロリー」より4年 新キャラが登場!

神作『無職転生~異世界行ったら本気出す~』の大推薦!

2022年夏|7月放送最新作TVアニメ情報まとめ!おすすめ6選を紹介!