- ベストアンサー
batファイルで呼び出す際に戻ってこない問題について
- batファイルで他のbatファイルを実行する際、戻ってこない問題が発生しています。問題の原因と解決方法を教えてください。
- 呼び出したbatファイルが戻ってこない問題について、具体的なコードを示しつつ原因と解決策を教えてください。
- batファイルで呼び出すと戻ってこない問題について、原因と対処法を詳しく教えてください。コードも示してくださると助かります。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>どこが間違っているのか教えていただければと思います。 --> call で戻っている可能性があるのに断定している処。 > ログに「処理終了」が入ってきませんので、callで戻ってきていないと判断しました。 --> それは考えがおかしい。そう思うなら echo 処理終了 とでも変えればいいです。表示されたら戻っている訳ですから。 そもそも %LOG% には絶対パスでファイル名をセットしていますか? 多分、カレントが変わってしまっていると予想します。
その他の回答 (5)
- 0909union
- ベストアンサー率39% (325/818)
CALLについての推察は、他の方の指摘であたっているのだろう。 私は、他のコマンドの呼び出しについて。 私もCALLを最初に思いつきましたが(15年前)、実は START コマンドの方が向いているし、32bit Winアプリにも合うことがわかりそれを多用しています。 逆にBATファイルや、DOSコマンドなど意外な機能もあったので、今はStartで呼び出しています。 利点 1. 擬似的なバックグランド処理ができる。MS-DOSや以前のDOS(IBM-DOS)の6.0ぐらいまではUNIX系のシェルのバックグランド処理指定ができませんでした。UNIX系だとコマンドの直後に”&”を付けるだけでバックグランドとなり、コマンドプロンプトなのに、並列処理ができました。しかも優先順位がつけられます。 これと同じごとができます start /b 2. 待ち状態が指定可能。 並列処理したりWin32アプリだと、実行と共に処理が次の行に移るために、結果を待つ場合、不都合が生じます。その時 start /wait でいいわけです 他の処理は start /? で見てください。そして、試してみてください。 今回の場合も処理が終了してから実行するなら、 start /wait **.bat ちなみにコマンドプロンプトでは、Win32アプリは処理を待たないのをしっていますか? start /b /wait notepad & echo back start /b notepad & echo back この違いわかりますか さらに他の方も指摘していますが・ >ログに「処理終了」が入ってきませんので、callで戻ってきていないと これは、大いに間違えています。何が間違っているのか、気がつかないと、今回の問題は解決しません。まあ、解決したとしても、たぶん次回も同じまちがいをしてつくってしまって、手に負えなくなり、他人にきくことになるのでしょう。
- 8ive22ty
- ベストアンサー率52% (770/1479)
No.2の続きです。 file-backup2.batがあやしいですね。 file-backup2.batについて次のことはありませんか。 ・正常に終了していない。 ・他のバッチファイルをcall無しで実行していてそこで処理が終了してしまっている。
- SaKaKashi
- ベストアンサー率24% (755/3136)
Z:\file-backup2.bat の中に exit っと書いてませんか?
- 8ive22ty
- ベストアンサー率52% (770/1479)
任意の引数を与えてcallしてみてはどうですか。
- SaKaKashi
- ベストアンサー率24% (755/3136)
call "Z:\file-backup2.bat" これが動いたかどうかは?
補足
これは動きました。
お礼
皆様からのアドバイスありがとうございました。 コマンドとカレントディレクトリについてまだまだ知識が浅かったと反省しております。 無事処理ができました。 ありがとうございました。