Arquivo em lote exibe a mensagem: "1 foi inesperado no momento"
Você está usando:
if %errorlevel% 1 goto email
...
if %errorlevel% 0 goto good
Tente:
if %errorlevel% equ 1 goto email
...
if %errorlevel% equ 0 goto good
IF - Condiciona condicionalmente um comando
IF will only parse numbers when one of (EQU, NEQ, LSS, LEQ, GTR, GEQ) is used. The == comparison operator always results in a string comparison.
IF ERRORLEVEL n statements should be read as IF Errorlevel >= number
IF ERRORLEVEL 0 will return TRUE when the errorlevel is 64
An alternative and often better method of checking Errorlevels is to use the %ERRORLEVEL% variable:
IF %ERRORLEVEL% GTR 0 Echo An error was found IF %ERRORLEVEL% LSS 0 Echo An error was found IF %ERRORLEVEL% EQU 0 Echo No error found IF %ERRORLEVEL% EQU 0 (Echo No error found) ELSE (Echo An error was found) IF %ERRORLEVEL% EQU 0 Echo No error found || Echo An error was found
Fonte IF - Condicionalmente executar um comando
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- if - Realize condicionalmente um comando.