你能看到为什么这会显示 0
"%ConnectDirectExe%" -f"%ConnectDirectCredentials%" < "%CurrentCDConfigFile%" > "%CurrentCDTaskLogFile%"
ECHO %errorlevel%
但这显示为空白?
"%ConnectDirectExe%" -f"%ConnectDirectCredentials%" < "%CurrentCDConfigFile%" > "%CurrentCDTaskLogFile%"
SET Result=%errorlevel%
ECHO errorlevel is %Result%
请注意,两种情况下的“%ConnectDirectExe%”行都完全匹配。如果我反转块以相反的顺序运行,结果也同样反转。
为什么我不能将 %errorlevel% 的结果存储在 Result 中并显示出来?它一直显示为空白。
更新:
如果我的 SET 语句出现在 IF 块中,它们似乎没有被执行。
给定以下批处理文件 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>
不应该显示第二个 ECHO
ResultCaption2=2
?