こんにちは、extract というモジュールのコードです。ログファイルは、extract 関数を呼び出す同じスクリプト内の別の関数から生成したファイルです。
: extract
find /c "extract return code: 0" c:\hp\logs\!logfile!
SETLOCAL EnableDelayedExpansion
echo errorleve with percent %errorlevel%
echo errorleve with dxcalim !errorlevel!
if !errorlevel! NEQ 0 (
echo do something
) else (
echo do nothing
)
)
わかりました、ログファイルに次のエントリがあるとしましょう
extract return code: 0
結果は次のとおりです。
---------- C:\HP\LOGS\logfilename: 1
errorleve with percent 0
errorleve with dxcalim 0
do something
Press any key to continue . . .
ログファイルに次のエントリがある場合
extract return code: 1
結果は次のとおりです。
---------- C:\HP\LOGS\logfilename.txt: 0
errorleve with percent 0
errorleve with dxcalim 0
do something
Press any key to continue . . .
ご覧のとおり、行の結果は異なりますが、エラーレベルは同じままです ---------- C:\HP\LOGS\logfilename: 1 ---------- C:\HP\ログ\ログファイル名.txt: 0
私のif文とelse文はエラーレベルを正しく取得していませんか? このコードは、このスクリプトの外でも問題なく動作します。それが私が非常に困惑している理由です。テキスト ファイルに対して同じコードを実行すると正常に動作しますが、それを関数にして別のスクリプト内で呼び出すと、うまくいきませんか?
私は何を間違っていますか?$errorlevel% を確認するのは正しいことではありませんか? 私は両方を試しました!errorlevel! と %errorlevel% ..同じ結果が得られます