※当サイトは、アフィリエイト広告を利用しPRを含みます。

技術系

バッチ(bat)でメッセージボックスの”はい”,”いいえ”を出力させる

バッチファイル(bat)でメッセージボックス「はい」「いいえ」の出力(ポップアップ)を1行で書く方法です。

単体テストでbatファイルを連携させるとき使います。

 

 

コマンド解説

長ったらしいコマンドなので、一応解説しておきます。ちょっとしたテクニックもあるので、応用できることがあるかも。

 

アンパサンド(&)ごとに区切って説明します。

アンパサンドの数について先に説明しておきます。

  • &  …連続してコマンドを実行する
  • &&  …前のコマンドが成功したら後続のコマンドを実行する


前のコマンド & 後続のコマンド
前のコマンド && 後続のコマンド

 

余談ですが、パイプ|を2つ使うと前のコマンド失敗時、後続のコマンドを実行します。

例)前のコマンド || 後続のコマンド

 

msgbox用のファイルをVBSで作成

ECHO msgbox "メッセージ内容",vbYesNoCancel,"タイトル部分" > %TEMP%/msgboxtest.vbs &

 

ECHOはbat標準のコマンド、VBSファイルに書き込み作成するため。

msgboxはVBSのコマンド用。

“メッセージ内容”はポップアップするメッセージの内容。

, vbYesNoCancelは「はい」「いいえ」メッセージとして扱う。ここをはVBSで使うvbInformation, vbExclamation などに変更可。

VBSのmsgbox関数の引数を設定すれば応用可。

 

作成したmsgboxtest.vbsを実行

%TEMP%/msgboxtest.vbs &&

VBSのプログラムを単体で実行しています。

 

Wait処理

ping -n 1 localhost > nul &&

%TEMP%/msgboxtest.vbs にファイルが生成されゴミとして残るので、削除したいです。しかし、処理が速すぎて実ファイルの生成が追い付かないことがあります。

そのためのWait処理としてpingを自身に打ち、標準出力されないようnulにリダイレクトします。

 

msgboxtest.vbsを削除する

rm %TEMP%/msgboxtest.vbs

%TEMP%/msgboxtest.vbsにファイルが残らないよう、削除します。

 

著作権について

どこかの現場で教わったモノを自分用にカスタマイズしたので、もしかすると元ソースはどこかに転がってるかもしれません。

もし見つけたら教えてください。

当サイトのソースからの流用は商用利用以外著作権フリーで問題ありません。

引用時はリンクを張ってください。


社畜系インフラエンジニアブログのTOPへ戻る

コメントもらえたら泣いて喜びます!
  • この記事を書いた人
  • 最新記事

kanade

IT関連の仕事に従事し気付けば20余年。好きな言葉は「よくわからないけど動いてる」です。どうにかして生き残りたいアラフォーのIT系エンジニア。

-技術系
-

© 2024 インフラエンジニアブログカナデ