Meu comando leva muito tempo para ser executado, mas espero que ele possa terminar com erro e eu quero falhar rápido no loop de lote neste caso. Como faço para produzir o nível de erro?
Eu tentei um arquivo em lotes com exit 1
. Mas, 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 no caso de if errorlevel 2 goto exit
ou qualquer 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 são mutuamente exclusivos?
Como injetar o código de saída de erro?