
Meu comando demora muito para ser executado, mas espero que ele termine com erro e, neste caso, quero falhar rapidamente no loop em lote. Como faço para produzir o nível de erro?
Eu tentei um arquivo em lote com exit 1
. Porém, ele fecha o script pai independentemente de ser chamado com call raise_error.bat
ou simplesmente raise_error
.
Eu também tentei cmd /c exit 1
. Isso não fecha o script pai, mas segue if errorlevel 0 goto exit
e if errorlevel 1 goto exit
ambos ramificam para sair. Nenhuma saída antecipada é feita em caso de if errorlevel 2 goto exit
número maior. Como isso é possível? Quero dizer, como posso ter dois níveis de erro ao mesmo tempo? Os valores de uma única variável não são mutuamente exclusivos?
Como injetar o código de saída do erro?