it-swarm.xyz

Как проверить код завершения последней команды в командном файле?

Внутри командного файла в Windows я использую 7-Zip вот так:

...\right_path\7z a output_file_name.Zip file_to_be_compressed

Как я могу проверить код выхода 7z и предпринять соответствующие действия?

67
Misha Moroshko

Проверить код возврата, больший или равный 1:

if ERRORLEVEL 1 echo Error

или же

if %ERRORLEVEL% GEQ 1 echo Error

или проверить код возврата, равный 0:

if %ERRORLEVEL% EQU 0 echo OK

Вы можете использовать другие команды, такие как GOTO, где я показываю echo.

78
Dennis Williamson

Это действительно работает, когда у вас есть: App1.exe вызывает -> .bat, который работает -> app2.exe

App2 возвращает уровень ошибки 1 ... но вам нужно отловить это в .bat и повторно поднять его до app1 ... в противном случае .bat съедает уровень ошибки, и app1 никогда не узнает.

Метод:

В .bat:

app2.exe
if %ERRORLEVEL% GEQ 1 EXIT /B 1

Это проверка после app2 уровня ошибки. Если> 0, то .bat завершается и устанавливает errorlevel в 1 для вызывающего app1.

9
Sam Jones