web-dev-qa-db-ja.com

バッチスクリプトを使用したコマンドの後にメッセージダイアログを表示しますか?

さまざまな目的でバッチスクリプトを作成していますが、コマンドの完了後に結果を宣言するメッセージダイアログが表示されるように作成したいと考えています。

たとえば、スクリプトで特定のオブジェクトを削除する場合、ユーザー定義のダイアログを表示したいと思います。ウィンドウのタイトルとテキストの値には、次の形式を使用したいと思います。

x=msgbox("%MESSAGE%" ,0, "%TITLE%")

表示するスクリプトにこれ(上)を追加するにはどうすればよいですかafterタスク(下)が完了しましたか?

rmdir "%TARGETPATH%
4
Mr. Mendelli

コマンド redirect with &&または&を使用して、最初のコマンドが完了した後に続行コマンドを実行できます。最初のコマンドが成功した後、または最初のコマンドの結果に関係なく最初のコマンドが実行された直後に、次のコマンドを実行するように設定できます。

秘訣は、バッチスクリプトにVB msgBox 関数とそれが使用する適用可能な値を後で実行される一時スクリプトに入れることです wscript 経由。

これはすべて、サードパーティのツールをインストールしなくてもすぐに機能するはずなので、Windowsネイティブです。


バッチスクリプト

注:これを機能させるには、構文ではなくSET x=msgbox "%TITLE%",0,"%MESSAGE%"の構文を使用する必要がありますがこれはマイナーな調整のみです。

@ECHO ON

:Routine1
SET TARGETPATH=C:\Path\Folder
SET COMMAND=rmdir "%TARGETPATH%
SET TITLE=This is my message title
SET MESSAGE=This is my message body
SET tmpmsgbox=%temp%\~tmpmsgbox.vbs
SET x=msgbox "%MESSAGE%",0,"%TITLE%"
ECHO %x%>"%tmpmsgbox%"
%COMMAND% && WSCRIPT "%tmpmsgbox%"
EXIT

リダイレクト

   commandA &  commandB      Run commandA and then run commandB
   commandA && commandB      Run commandA, if it succeeds then run commandB

その他のリソース

4
Pimp Juice IT