Si se trata de un fragmento como "posterior a la generación de eventos", etc., entonces estará bien agregar:
(...) || ver > nul
al final del último comando.
Alternativamente
cmd /c "exit /b 0"
es muy limpio y no idiomática - un lector que sabe shell de Windows sabrá lo que está pasando, y lo que era su intención.
Sin embargo, si está en una secuencia de comandos por lotes, es posible que desee utilizar subrotines, que son un equivalente ligero del "script por lotes hijo" de la respuesta de akf.
Tener un subprograma:
:reset_error
exit /b 0
y luego simplemente
call :reset_error
siempre que lo necesite.
Aquí está un ejemplo completo:
@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
que da salida:
After :raise_error ERRORLEVEL = 1
After :empty ERRORLEVEL = 1
After :reset_error ERRORLEVEL = 0
Como se puede ver - sólo llamar y volviendo a través de Goto: EF no es suficiente.
La acumulación en realidad no fallan, sólo el IDE lo parece. – Dykam
Me doy cuenta de que esta es una publicación muy antigua ... Logré restablecer el nivel de error a 0 emitiendo el comando "escribir nul" después del último comando. Solo sentí que podría ser de utilidad. – Arun