0
以下は私のコードです。今は使用していますが、動作していますが、2番目のコマンドがダウンしていると報告しています。 ERRORLEVELどうかは知らない:どのようなあなたのコードが行うこと最初のテストで失敗した場合、バッチファイルを2回実行してテストしたい
check server
if errorlevel == 0 (
send mail
) else (
check server
)
if errorlevel == 0
であり、ここで、第二エラーレベルチェックにあいまいさがある私を助け、私は間違いをしたところを指摘し、
echo on
setlocal
set itemail= "mail id"
C:
cd\
cd batch
Call utltest.cmd >status.txt
ServerTester.exe -services acgenpszrwbklquf >>status.txt
if %errorlevel%==0 (
wmailto mailid -s"UP - Health Monitoring." -tstatus.txt"
) else (
c:
cd\
cd batch
Call utltest.cmd >status.txt
ServerTester.exe -services acgenpszrwbklquf >>status.txt
)
if %errorlevel%==0 (
wmailto mailid -s"UP - Health Monitoring." -tstatus.txt"
) else (wmailto %itemail% -s"DOWN - WebServices Health Monitoring." -tstatus.txt
)
:eof
エラーが発生したときにテスターが別の値を返すので、エラーコード1も考慮する必要があります。エラーがない場合は、1行のロジックを変更する必要があります。 1)、differetの組み合わせでテストしています(errorlevel == 0の場合、errorlevelが0の場合は%% a equ 0)、このロジックを編集するにはどうすればいいですか –
@ T.Anand、 'errorlevel n'がエラーレベル値*以上であればtrueに評価され、' n'に等しいと判断されます。したがって、エラーレベル1でない場合は、エラーレベルが0以上であれば* "エラーレベルが1以上でない場合*"を意味します*。異なる値をチェックする場合は、より大きい値から小さい値に 'errorlevel n 'を使用してください。 –
ありがとうございました!!!しかし、一般的に "そうではない場合"を意味するわけではなく、私の関心事はここでは、(EQU、NTQ、GTQ、GTR)のような比較演算子を使用していない場合、スクリプトが "errorlevelが0 「エラーレベル1でなければ」「これは私の混乱です。 –