- ベストアンサー
複数の処理の終了を待ちたい
お世話になります。以下、教えていただけますでしょうか? バッチファイル(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を起動させる方法」というのが分かりません。 教えていただけますでしょうか? それとも、そもそも、バッチでは実現不可能なのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
パッと思いつくのが下のような処理でした。 各バッチファイルの最後に以下の処理を追加する。 ・終了したことを示すファイルを作るようにする ・各バッチファイルが作成した4つのファイルの存在を確認して存在していた場合は 最後のバッチファイルを実行するようにする(そして4つのファイルを削除する) 4つの存在が確認できない場合はそのまま終了する これで実現可能だと思いますが、複数のバッチが同時に終了してしまった場合に どのような挙動になるかが分かりません。こればっかりは確認するしかないと思います。
その他の回答 (3)
- marbin
- ベストアンサー率27% (636/2290)
>前処理の終了を待たずに起動させ、 見落としてました。 私のレスはスルーしてください。
- marbin
- ベストアンサー率27% (636/2290)
バッチファイルではないですが・・・。 http://msdn.microsoft.com/ja-jp/library/cc364421.aspx
- eroermine
- ベストアンサー率18% (83/444)
プログラム a,b,c,d が 終了を e に通知するメッセージ通信をしなければなりません。 あるいは e (を起動するプログラム) が a,b,c,d の実行終了を監視する。 あるいは a,b,c,d がなんらかのファイルを占有し、その開放を待って e が起動する。 バッチで不可能というよりも Windowsの標準機能ではない。 ただしそれが可能なプログラムを作成するのは難しくありません。 Cで百行くらい
お礼
いろいろ調べてみましたけど、やっぱり何らかのプログラムを組むしかないようですね。ありがとうございました。
お礼
いろいろ調べてみましたけど、やっぱり何らかのプログラムを組むしかないようですね。ありがとうございました。