これが0を表示する理由を理解できますか
"%ConnectDirectExe%" -f"%ConnectDirectCredentials%" < "%CurrentCDConfigFile%" > "%CurrentCDTaskLogFile%"
ECHO %errorlevel%
まだこれは空白を表示しますか?
"%ConnectDirectExe%" -f"%ConnectDirectCredentials%" < "%CurrentCDConfigFile%" > "%CurrentCDTaskLogFile%"
SET Result=%errorlevel%
ECHO errorlevel is %Result%
どちらの場合も、「%ConnectDirectExe%」行は完全に一致することに注意してください。ブロックを反転して逆の順序で実行すると、結果も同様に反転します。
%errorlevel%の結果をResultに保存して表示できないのはなぜですか?空白として表示され続けます。
アップデート:
IFブロック内で発生した場合、SETステートメントが実行されていないようです。
次のバッチファイルが与えられた場合、if.bat:
echo off
SET Result=1
ECHO ResultCaption1=%Result%
IF 1 equ 1 (
SET Result=2
ECHO ResultCaption2=%Result%
) else (
ECHO 1 is not = 2
)
実行すると、次の出力が表示されます。
C:\Batch>if.bat
C:\Batch>echo off
ResultCaption1=1
ResultCaption2=1
C:\Batch>
2番目のECHOディスプレイではありません
ResultCaption2=2
?