All'interno di un file batch su Windows, utilizzo 7-zip in questo modo:
...\right_path\7z a output_file_name.zip file_to_be_compressed
Come posso verificare il codice di uscita 7z
e intraprendere le azioni appropriate?
All'interno di un file batch su Windows, utilizzo 7-zip in questo modo:
...\right_path\7z a output_file_name.zip file_to_be_compressed
Come posso verificare il codice di uscita 7z
e intraprendere le azioni appropriate?
Risposte:
Test per un codice di ritorno maggiore o uguale a 1:
if ERRORLEVEL 1 echo Error
o
if %ERRORLEVEL% GEQ 1 echo Error
o prova per un codice di ritorno uguale a 0:
if %ERRORLEVEL% EQU 0 echo OK
Puoi usare altri comandi come ad esempio GOTO
dove mostro echo
.
0 was unexpected this time.
%ERRORLEVEL%
è 0 anche se si è verificato un errore. È successo durante il check %ERRORLEVEL%
in di un file cmd. Provare start /wait
non ha funzionato. L'unica cosa che ha funzionato èif errorlevel 1 (...)
NEQ
invece di EQU
supportare il rilevamento di codici di ritorno negativi? Non ho idea se Windows XP lo fa, ma è una cosa su Windows moderno ...
Funziona davvero quando hai: App1.exe chiama -> .bat che esegue -> app2.exe
App2 restituisce il livello di errore 1 ... ma devi prenderlo nel file .bat e ri-rilanciarlo in app1 ... altrimenti .bat mangia il livello di errore e app1 non lo sa mai.
Metodo:
In .bat:
app2.exe
if %ERRORLEVEL% GEQ 1 EXIT /B 1
Questo è un controllo dopo app2 per il livello di errore. Se> 0, allora .bat esce e imposta il livello di errore su 1 per l'app chiamante1.
if %ERRORLEVEL% GEQ 1 EXIT /B %ERRORLEVEL%
.
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
potrebbe essere un'opzione migliore. Ma devi davvero sapere cosa restituisce il programma in caso di errori. Alcuni programmi restituiscono determinati codici diversi da zero per particolari tipi di successo.