Io uso alcuni comandi batch di Windows in jenkins, dove ognuno dei comandi potrebbe fallire. Per far fallire il lavoro di jenkins in ogni fase, questi comandi batch appaiono come segue:
net use m: \%IP_ADDRESS%Whatever %PASSWORD% /user:%USERNAME%
if ERRORLEVEL 1 exit 1
mkdir m:Install
if ERRORLEVEL 1 exit 1
copy /b %LOCAL_TEMP%%INSTALLER_EXE% m:Install%INSTALLER_EXE%
if ERRORLEVEL 1 exit 1
net use m: /D
if ERRORLEVEL 1 exit 1
In altre parole: mi sembra di controllare ogni singolo comando batch se ha fallito, e quindi di uscire con errorcode 1 se necessario. C'è un modo più sensato / conveniente / migliore per raggiungere questo obiettivo?
Se non controllo ogni singolo passaggio ed esco, jenkins eseguirà il seguente comando batch.
risposte:
6 per risposta № 1Purtroppo in batch non è possibile attivare una bandiera come la -e
in bash che uscirebbe su qualsiasi codice di ritorno che non fosse 0. Comunque potreste usare una logica or
per saltare a un'etichetta di uscita come descritto qui: https://stackoverflow.com/a/8965092/2003420
3 per risposta № 2
Stringa i tuoi comandi insieme al batch &&
operatore. Salta i comandi a destra se il comando a sinistra ha un codice di uscita diverso da zero.