Если это фрагмент как «после построения Event» и т.д., то вы будете в порядке:
(...) || ver > nul
в конце последней команды.
Альтернативно
cmd /c "exit /b 0"
очень чистый и не идиоматическое - читатель, который знает Windows, оболочка будет знать, что происходит, и то, что было ваше намерение.
Однако, если вы используете пакетный скрипт, вы можете использовать субтроины, которые являются легким эквивалентом «детского пакетного сценария» из ответа akf.
есть подпрограмма:
:reset_error
exit /b 0
, а затем просто
call :reset_error
везде, где вам это нужно.
Вот полный пример:
@echo off
rem *** main ***
call :raise_error
echo After :raise_error ERRORLEVEL = %ERRORLEVEL%
call :empty
echo After :empty ERRORLEVEL = %ERRORLEVEL%
call :reset_error
echo After :reset_error ERRORLEVEL = %ERRORLEVEL%
:: this is needed at the end of the main body of the script
goto:eof
rem *** subroutines ***
:empty
goto:eof
:raise_error
exit /b 1
:reset_error
exit /b 0
Какие выходы:
After :raise_error ERRORLEVEL = 1
After :empty ERRORLEVEL = 1
After :reset_error ERRORLEVEL = 0
Как вы видите - просто вызов и возвращение через Goto: ВФ не достаточно.
Строить не действительно терпят неудачу, только IDE будет выглядеть как он. – Dykam
Я понимаю, что это довольно старое сообщение ... У меня был успех в сбросе errorlevel на 0, выдав команду «type nul» после последней команды. Просто чувствовал, что это может быть полезно. – Arun