dポイントプレゼントキャンペーン実施中!

バックグラウンド起動するときは、STARTを使う、ということまではわかったのですが、

---a.bat---
@echo off

start b.bat
exit
-----------


---b.bat---
@echo off

start /wait c.bat
start /wait d.bat

echo end
exit
-----------

とすると、b.batのc.batを起動した時点で終了してしまうようです。

b.bat起動→c.bat起動→d.bat起動→「end」表示
とするにはどうしたらいいでしょうか?

b.batの内容を出来ればしなくないのですが…。

A 回答 (3件)

callじゃ駄目なのですか?


@echo off

call b.bat
call c.bat
call d.bat

echo end
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
callでやっても駄目でした…。

お礼日時:2007/02/10 01:14

c.bat、d.batも問題なく起動出来ているように見えますが…


ただb.batで、「end」表示したあとすぐにexitしているので、勘違いされているのではないでしょうか?

exit -> pause に変更してみて、「end」が表示されることを確認してみては?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
今気付いたのですが、実は
---b.bat---
@echo off

echo C実行
pause
start /wait c.bat

echo D実行
pause
start /wait d.bat

echo end
exit
-----------
となってて、b.batに含まれている「pause」が原因だったようです。
どうもすみませんでした…。
皆さん、回答ありがとうございました。

お礼日時:2007/02/10 01:19

batはcmd上でプロセスが動くので、子プロセスとしてbatを立ち上げて


みてください。

//a.bat
@echo off
echo a-start
cmd /c b.bat
echo a-end

//b.bat
@echo off
echo b-start
cmd /c c.bat
cmd /c d.bat
echo b-end

//c.bat
@echo off
echo c
pause

//d.bat
@echo off
echo d
pause
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
cmdも試してみましたが駄目ですね。何でだろう…。

お礼日時:2007/02/10 01:15

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