• ベストアンサー

execでバッチファイル実行の際のコマンド数

今、exec("a.bat")でバッチファイルをコールしています。 a.batには、「if exist *.log del *.log」(A)という内容を、多数のディレクトリに対して設定したいのですが、(A)を8つ以上羅列すると、固まってしまいます。 コマンド数に制限があるのでしょうか?それとも何か方法があるのでしょうか? すいませんが、よろしくお願いいたします。

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

  • ベストアンサー
  • mojimojio
  • ベストアンサー率51% (14/27)
回答No.2

バッチファイルの先頭に@echo offを書くとうまくいったりしませんか? また、Javaコードの方で以下のようにしても実行できると思います。 Process p = Runtime.getRuntime().exec("a.bat"); InputStream in = p.getInputStream(); int b; while ((b = in.read()) != -1) { System.out.write((byte)b); } バッファがいっぱいになって、サブプロセスの出力ストリームが詰まったのが原因じゃないかと思います。

wwwwtaka
質問者

お礼

ありがとうございます!! 先頭に「@echo off」もしくは「echo off」を書くとうまくいきました。 大変助かりました。ありがとうございます。 ただ、javaコードの方は固まってしまうみたいです・・・。

その他の回答 (1)

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.1

MS-DOSプロンプト(DOS窓)でそのbatを実行したらどうなりますか? C言語なら、sysytem()を使用したらどうなりますか?

wwwwtaka
質問者

補足

DOS窓、及びC言語では、正しく動作します・・・・。 EXECを使用する際の、プロセスとかバッファとかが影響してるんでしょうか?

関連するQ&A