• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バッチファイルで他のバッチファイルを呼び出した後、元に戻ってこれない。)

バッチファイルで他のバッチファイルを呼び出し、元に戻ってこれない問題の解決方法

このQ&Aのポイント
  • バッチファイルで他のバッチファイルを呼び出した後、元に戻ってこれない問題が発生しています。
  • 呼び出したバッチファイルがエンターキーを押さないと終了しないため、元のバッチファイルに戻ることができません。
  • エンターキーを押さずに呼び出したバッチファイルを終了させる方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#159916
noname#159916
回答No.4

書いてるうちにNo.2さんと被る事になってしまいましたが。 >「1.bat」は中身を扱えないようにしてある とは、1.bat を編集できないようになってる、という事でしょうか。 編集できるなら Pause なりが入ってるだけでしょうから、削ればいいだけだと思うのですが。 どういう仕組みかわかりませんが、編集できない、という前提で話を進めると... つまり 1.bat 内でキー入力待ちで止まってしまうが、 これを人力に頼らず自動的に進めたい、という事ですよね。 プログラムが文字入力+<Enter>を要求する時、 予めテキストファイルを作っておき、 Prograname <TEXTFILE.TXT のように文字 "<" を使ってリダイレクトすると 入力しなくてもテキストファイルから1行を代入して先へ進みます。 試しに、<CR>だけのテキストファイルを作っておき、 1.bat < TEXTFILE.TXT として読ませてみたら、先に進みました。 A.bat 内で 1.bat を呼ぶ時に 1.bat < TEXTFILE.TXT のように記述しておきます。 バッチ内容の複雑さによってはうまくいかないかも知れませんが、 試してみたらいかがでしょう。

dougasaisei
質問者

お礼

丁寧な回答、ありがとうございます。 無事に解決することができました。 おっしゃるとおり、編集できないバッチファイルとなっており、大変困っていました。 解決することができたのですが、次の動作で新たに困ったことが出てきました。 もしわかれば教えてください。 「1.bat」を実行すると、「成功しました」「失敗しました」の2通りの文字列が画面に出た後、 エンターキーの入力を求めてきます。 「成功しました」と出れば「2.bat」を実行、「失敗しました」と出れば、もう一回「1.bat」を 実行するように処理を分岐したいのです。 画面に出た結果(「成功しました」または「失敗しました」)の文字列をコピーして、 先ほど教えたもらったやり方で、エンターキーを押して終了し、元のバッチファイルで コピーした文字列によって処理を分岐することは可能でしょうか?

dougasaisei
質問者

補足

困っていたことですが、自己解決することができました。 時間を割いていただき、ありがとうございました。

その他の回答 (4)

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.5

call 1.bat < nul ではどうでしょうか

dougasaisei
質問者

お礼

お返事、ありがとうございます。 やってみましたが、うまくいきませんでした。 No.2、No.4の方の回答で解決することができました。

  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.3

http://tooljp.com/bat_qa/A421937B90874636492573780059EC35.html callで呼び出せば終了してからの制御は戻ります。 [a.batの中身] call 1.bat if %ERRORLEVEL%==1 echo エラー

dougasaisei
質問者

お礼

ありがとうございます。 終了してからの制御は戻るのですが、自分でキーを押さずに、 自動的に戻したかったのです。 No.2、No.4の方の回答で解決することができました。

  • sknbsknb2
  • ベストアンサー率38% (1158/3030)
回答No.2

参考URLの方法で解決できるのではないかと思います。

参考URL:
http://fpcu.on.coocan.jp/dosvcmd/bbs/log/cat3/cat54/2-0139.html
dougasaisei
質問者

お礼

ありがとうございました。 求めていた情報でした。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

文面から、 現在の状況はだいたいわかりますが、  これをどのような動作をするように したいのかが、分かりません。 A.bat の振る舞い、 1.bat の振る舞い を教えてください。

dougasaisei
質問者

お礼

質問の仕方が悪くて、すみません。 先ほどした質問は、No.2、No.4の方の回答によって解決することができたのですが、 新たに困ったことが出てきたので、こちらも教えていただけるとありがたいです。 3つあるバッチファイルを1つ1つ手動で実行していたのですが、 面倒なので、自動的に次々にバッチファイルを実行していくバッチファイルを作成しています。 それが「A.bat」です。 以下の作業をすべて自動でやってくれたらいいなあと思って作ってます。 1.「1.bat」を実行する 2.実行結果が画面に表示された後、エンターキーを入力して「1.bat」は終了 3.「1.bat」の実行結果が「成功しました」と表示されていたら、「2.bat」を実行する   「失敗しました」と表示されていたら、再度1番の手順からやり直し 4.「3.bat」を実行する    先ほどは、2番の手順のエンターキーを入力するところで困っていたのですが、 今は、「成功しました」「失敗しました」の実行結果を「A.bat」で判断し、分岐処理 をさせるところで困っています。

dougasaisei
質問者

補足

新たに困っていたことですが、自己解決できました。 ありがとうございました。

関連するQ&A