重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

お世話になります。以下、教えていただけますでしょうか?

バッチファイル(A.bat)を作成しています。
そのなかで、a,b,c,dの複数のプログラムを、前処理の終了を待たずに起動させ、a,b,c,d全てが終了するのを待って、eというプログラムを実行させたいのです。

---------------
start a
start b
start c
start d
---------------
この記述で、a,b,c,dが一度に起動することは確認できました。
しかし、この後の、「a,b,c,d全ての終了を待ってeを起動させる方法」というのが分かりません。
教えていただけますでしょうか?

それとも、そもそも、バッチでは実現不可能なのでしょうか?

A 回答 (4件)

パッと思いつくのが下のような処理でした。



各バッチファイルの最後に以下の処理を追加する。

・終了したことを示すファイルを作るようにする
・各バッチファイルが作成した4つのファイルの存在を確認して存在していた場合は
  最後のバッチファイルを実行するようにする(そして4つのファイルを削除する)
 4つの存在が確認できない場合はそのまま終了する

これで実現可能だと思いますが、複数のバッチが同時に終了してしまった場合に
どのような挙動になるかが分かりません。こればっかりは確認するしかないと思います。
    • good
    • 0
この回答へのお礼

いろいろ調べてみましたけど、やっぱり何らかのプログラムを組むしかないようですね。ありがとうございました。

お礼日時:2008/11/24 10:48

>前処理の終了を待たずに起動させ、



見落としてました。
私のレスはスルーしてください。
    • good
    • 0

バッチファイルではないですが・・・。



http://msdn.microsoft.com/ja-jp/library/cc364421 …
    • good
    • 0

プログラム a,b,c,d が 終了を e に通知するメッセージ通信をしなければなりません。


あるいは e (を起動するプログラム) が a,b,c,d の実行終了を監視する。
あるいは a,b,c,d がなんらかのファイルを占有し、その開放を待って e が起動する。

バッチで不可能というよりも Windowsの標準機能ではない。
ただしそれが可能なプログラムを作成するのは難しくありません。
Cで百行くらい
    • good
    • 0
この回答へのお礼

いろいろ調べてみましたけど、やっぱり何らかのプログラムを組むしかないようですね。ありがとうございました。

お礼日時:2008/11/24 10:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!