異なるジョブを実行するためにバッチファイルが必要なWindows 2003サーバーでは、スケジューリングシステムを使用します。私は、ファイルが存在するかどうかをチェックし、ファイルが空でないことを比較し、結果に基づいて何かを行う1つの仕事を持っています。私がこれを実行するたびに返されるエラーレベルは0ですが、ファイルは異なります。私は返された1を見ることを期待しています。ファイルが異なる場合にバッチファイル比較が0に戻る
ファイルの場所を確認しましたが、1つのファイルにはコンテンツがあり、もう1つは空です。私は、セットアッププロンプトをしました、そして、彼らは彼らのすべては、%ERRORLEVEL%は0ですが、私もバッチジョブで同じディレクトリになるようにファイルを移動していると言うが、彼らはまだ0
コードを示しています。
echo %ERRORLEVEL%
IF EXIST data.DON (
echo before %ERRORLEVEL%
FC data.DON ZERO.SEQ
echo after %ERRORLEVEL%
IF %ERRORLEVEL% EQU 1 GOTO :PROCESS
)
出力:
16:37:08.12 Thu 03/29/2012
>IF EXIST data.DON (
echo before 0
FC data.DON ZERO.SEQ
echo after 0
IF 0 EQU 1 GOTO :PROCESS
)
before 0
Comparing files data.DON and ZERO.SEQ
***** data.DON
Name|Date|Location
***** ZERO.SEQ
*****
after 0
私は別のデータファイルを指して、同じサーバー上の他のジョブでは、この正確なコードを持っており、それが動作します。私は何を試すことができるの任意のアイデア?
ありがとうございました。私はチェックをifループの外に移動してしまい、それが私のために働いた。 – MikeL
もちろん!カッコ内に%errorlevel%を使用すると、この問題は解消されます。しかし、注意!同じ行のいくつかのコマンドを組み合わせて、&:を使用すると問題は残っています。上記の最初の例では、かっこを削除しても「古い値」が表示されます。 – Aacini