プロが教える店舗&オフィスのセキュリティ対策術

バッチファイルで、あるスクリプトがエラーになっても、つぎのスクリプトを実行させたいと考えています。
具体的には、
■call.bat■
******************
call 1.bat
call 2.bat
******************


■1.bat■
******************
mkdir test1
******************

■2.bat■
******************
mkdir test2
******************

の3つのバッチファイルで、1.batがエラーになっても
2.batを実行させたいと考えています。
どうしたらいいのでしょうか。

よろしくお願いします。

A 回答 (5件)

>1.batが終了しなくても、


>2.batを実行させたいと考えています。

なるほど。簡単そうに出来るのは
start cmd /C 1.bat
start cmd /C 2.bat
ですかね。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
説明不足でもうしわけありません。

教えていただいた方法をためしたのですが、
1.batが終了しなくても
2.batが実行するのは
1.batでエラーになったときのみにしたいと考えています。
1.batが正常に終了する場合は、
1.bat終了後に2.batが動くようにしたいと考えています。

お礼日時:2009/09/03 17:52

そもそもxcopyだけを使うのに1が終了しないなんて事があるんですか?他の精査されていないプログラムを使うならわかりますが・・xcopyはコマンドラインから使うことを意識されて作られた(というかコマンドライン前提の)プログラムですよ?当然バッチからの起動も考慮しているでしょう。

ゆえに正しくパラメータを与えれば途中で止まったりするような事はないはず?です。

テストはしてみました?ロックがかかってると止まる?そんな事はないと思いますけど・・。予想しないエラーってなんですか?



それにxcopyがある時点で止まっていたとして(プログラムとしては動いているといえます。)それがエラーなのか。正常に動作しているか外部から検出する方法は標準エラー出力をチェックするくらいしか出来ないと思います。

どこかで止まっているとして、それが単に時間のかかる処理を行っている最中なのか、エラーなのか外部からどうやって見分けるのでしょうか?一定の時間がきたらタイムアウトですか?それならやろうと思えば技術的には出来ますけど・・。

もっとご自身でテストを行って具体的にこういう問題がありますと提示してください。それならば回答を示すことはできるかもしれませんが、現時点では漠然としすぎています。手間のかかるテストまでこちらでできませんよ。
    • good
    • 0

xcopy には上書きを確認しないオプションがあります。

batで実行させたい時にはそれを使います。ファイルロックに関しては未テストなのですが処理が止まってしまうのですか?普通はコピーできませんでしたのエラーがでて次の処理に移るかと思いますけど。。テストしてみればいいんでしょうけど排他ロックかけるプログラム書いてテストするのがめんどい。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
説明不足でもうしわけありません。

確かにそうなのですが、予想しないエラーが起きた場合に、
1.batが終了せず、途中で止まった場合に、2.batを実行させたいと考えています。
1.batが正常に終了する場合は、
1.bat終了後に2.batが動くようにしたいと考えています。

お礼日時:2009/09/03 17:55

試してみたけどうまくいくけど?



バッチファイルはプログラムのエラーチェックなんてやらないから、プログラムが終了して処理が戻ってくる限り次のプログラムは実行されますよ。無限ループとか長時間かかる処理なんかやると次に進まないけど・・

何ができないのですか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
説明不足で申し訳ありません。

1.batの中身は
xcopy C\test\*.* \\server1\test
なのですが、
*.*の中のあるファイルが使用中でコピーできなかったり、
あるいは、コピー先に同じ名前のファイルがあったりした場合に
上書きするかどうかを聞くところでとまったりした場合などに、
1.batが終了しなくても、
2.batを実行させたいと考えています。

基本的には1.batのあとに2.batを実行させたいのですが、
上記のような場合に1.batが実行途中でとまったとしても、
2.batを実行させたいと考えています。
可能でしょうか。
よろしくお願いします。

お礼日時:2009/09/01 14:25

バッチファイルはコマンドプロンプト上で実行されるものですよね。


call.batのままで上手くいかないですかね。
具体的に「1.batがエラーになっても」というのはどの様なエラーでしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
説明不足で申し訳ありません。

1.batの中身は
xcopy C\test\*.* \\server1\test
なのですが、
*.*の中のあるファイルが使用中でコピーできなかったり、
あるいは、コピー先に同じ名前のファイルがあったりした場合に
上書きするかどうかを聞くところでとまったりした場合などに、
1.batが終了しなくても、
2.batを実行させたいと考えています。
可能でしょうか。
よろしくお願いします。

お礼日時:2009/09/01 14:22

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

このQ&Aを見た人はこんなQ&Aも見ています