• ベストアンサー

Windowsのリダイレクトエラー

Windowsのバッチファイルでリダイレクトを用い、出力ログなどを取得しています。 リダイレクトの出力ファイル名が複数のバッチファイルで使用されています。 そのうちいくつかのバッチファイルが同時に実行されてリダイレクトファイルが同時に書かれようとした場合、エラーになっているようなのです。 おそらくリダイレクトファイルの書き込みエラーだと思われます。 このエラーを解除または感知する方法などなりますか? 実は、このエラーを感知すると、バッチファイルをJP1が起動かけているので、JP1の方でエラー感知してしまうのです。 バッチファイルのタイミングをずらせばいいんじゃないかと思われるでしょうが、なかなか難しい状況なのです。 良い案お待ちしております。

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

回避案1 各バッチファイルの出力は競合しないように、別ファイルにする。 別途、各バッチファイルの出力を結合するようなプログラムを作る。 回避案2 バッチファイルではなく、VBScriptを利用する。 VBScriptなら、ファイルのエラー処理も出来ます。 バッチファイル自体は古い技術です。 WSHが利用できるなら、移行を検討されてはいかがでしょうか? 幾つか参考になりそうなものを挙げておきます。 WSHを始めよう http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh01/cformwsh01_01.html [VBScript Tips] http://www.whitire.com/vbs/ [ファイルにデータを書き込む] http://www.whitire.com/vbs/tips0064.html [プログラムの結果を取得する] http://www.whitire.com/vbs/tips0106.html

その他の回答 (1)

  • pita-gora
  • ベストアンサー率70% (102/145)
回答No.1

解除する方法は思いつきませんが、感知なら %errorlevel% でできるかと思って実験したら、一回エラーになると %errorlevel% は1のままですね。 echo sample>sample.log||echo error こんな感じで検知するぐらいしか思いつかないです。

kuriosprj
質問者

お礼

pita-goraさん、ありがとうございます。 確かに%errorlevel%がありますが、1ではどうしようもないのです。