プロが教えるわが家の防犯対策術!

今、exec("a.bat")でバッチファイルをコールしています。
a.batには、「if exist *.log del *.log」(A)という内容を、多数のディレクトリに対して設定したいのですが、(A)を8つ以上羅列すると、固まってしまいます。

コマンド数に制限があるのでしょうか?それとも何か方法があるのでしょうか?

すいませんが、よろしくお願いいたします。

A 回答 (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);
}

バッファがいっぱいになって、サブプロセスの出力ストリームが詰まったのが原因じゃないかと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます!!
先頭に「@echo off」もしくは「echo off」を書くとうまくいきました。
大変助かりました。ありがとうございます。

ただ、javaコードの方は固まってしまうみたいです・・・。

お礼日時:2002/08/02 10:11

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


C言語なら、sysytem()を使用したらどうなりますか?

この回答への補足

DOS窓、及びC言語では、正しく動作します・・・・。

EXECを使用する際の、プロセスとかバッファとかが影響してるんでしょうか?

補足日時:2002/08/01 22:19
    • good
    • 0

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