我有一个脚本可以复制文件,并在每次操作后调用:errorHandler。我已删除所有CALL:errorHandler,脚本已正常运行。
[我尝试了许多方法来编写该IF语句,但所有方法都失败了
我玩过IF语句,但没有成功
我什至都去过
IF 1==1 (
firstErrorHandlerBlock
) ELSE (
secondErrorHandlerBlock
)
IF %errorlevel% == 0
IF %errorlevel% != 1
IF %errorlevel% != 0
IF %errorlevel% == "0"
IF %errorlevel% >0
IF %errorlevel%> "0"
IF %errorlevel% NEQ 0
IF %errorlevel% NEQ 1
并且它仍然失败。关于它。
:errorHandler
ECHO.
ECHO ======================================================================
ECHO Error Handler errorlevel = %errorlevel%
ECHO ======================================================================
ECHO.
CALL :debug
ECHO GOT UNTIL HERE
PAUSE
REM ^-----------------------------------IT BREAKS AFTER THIS ONE --------------------------------------^
IF (%errorlevel% == 0) (
ECHO No errors so far
CALL :debug
EXIT /B 0
) ELSE (
REM set the window color to red '4' and text color to black '0'
color 40
ECHO.
echo *** IMPORTANT ***
echo Errors have been found
ECHO.
ECHO Press any key again to exit
ECHO.
PAUSE
EXIT
)
:debug
IF %debugging%=="1" (
ECHO.
ECHO Debugger PAUSE
ECHO.
PAUSE
ECHO.
EXIT /B 0
) ELSE (
EXIT /B 0
)
PAUSE
我终于找到了问题!
我从]修改了代码>
IF (%errorlevel% == 0) ( ECHO No errors so far CALL :debug EXIT /B 0
到
IF (%errorlevel% == 0)( ECHO No errors so far CALL :debug EXIT /B 0
我已经将与ECHO的行移到了与IF的行上,并且也删除了方括号之间的空格。如果我将括号从条件中删除,如果0和“(ECHO ...”之间有空格,它仍然会退出。
尽管我不完全理解为什么这与使用相同的脚本一样有效,但我有更多类似的IF语句
IF condition ( do this )
OR
IF condition (
do this )