Eu tenho um arquivo em lotes que é um invólucro em torno de um instalador. Este arquivo em lote verifica o nível de erro retornado pelo instalador e é impresso de acordo.
Percebi que, se eu executar set ERRORLEVEL=0
em um prompt de comando antes de iniciar o arquivo em lotes (na mesma janela / ambiente de comando), o instalador nunca mexe com o nível de erro e meu script em lote sempre retorna passado. Eu diria que %ERRORLEVEL%
é uma variável definida pelo Windows e é usada especificamente para imprimir erros de programas e scripts e que o uso da variável em um arquivo em lotes ou qualquer outra coisa seria "por sua conta e risco", pois poderia ser alterado a qualquer momento. outro processo.
Pelo que parece, quando defino o nível de erro no ambiente fornecido, ele termina de alguma forma o uso do nível de erro como detentor do código de saída. Alguém sabe por que isso é? Para mim, é apenas um comportamento estranho e inesperado. Qualquer informação sobre o assunto seria muito apreciada!
&&
ou||
.