Di dalam file batch di Windows, saya menggunakan 7-zip seperti ini:
...\right_path\7z a output_file_name.zip file_to_be_compressed
Bagaimana saya bisa memeriksa kode keluar 7z
dan mengambil tindakan yang sesuai?
Di dalam file batch di Windows, saya menggunakan 7-zip seperti ini:
...\right_path\7z a output_file_name.zip file_to_be_compressed
Bagaimana saya bisa memeriksa kode keluar 7z
dan mengambil tindakan yang sesuai?
Jawaban:
Tes untuk kode pengembalian lebih besar dari atau sama dengan 1:
if ERRORLEVEL 1 echo Error
atau
if %ERRORLEVEL% GEQ 1 echo Error
atau uji untuk kode pengembalian sama dengan 0:
if %ERRORLEVEL% EQU 0 echo OK
Anda bisa menggunakan perintah lain seperti GOTO
tempat saya tunjukkan echo
.
0 was unexpected this time.
%ERRORLEVEL%
0 meskipun terjadi kesalahan. Terjadi ketika memeriksa %ERRORLEVEL%
dalam file cmd. Berusaha start /wait
tidak berhasil. Satu-satunya hal yang berhasil adalahif errorlevel 1 (...)
NEQ
daripada EQU
mendukung mendeteksi kode pengembalian negatif? Tidak tahu apakah Windows XP melakukan itu, tetapi itu adalah hal pada Windows modern ...
Ini benar-benar berfungsi ketika Anda memiliki: Panggilan App1.exe -> .bat yang berjalan -> app2.exe
App2 mengembalikan errorlevel 1 ... tetapi Anda harus menangkapnya di .bat dan menaikkannya kembali ke app1 ... jika tidak .bat memakan errorlevel dan app1 tidak pernah tahu.
Metode:
Di .bat:
app2.exe
if %ERRORLEVEL% GEQ 1 EXIT /B 1
Ini adalah pemeriksaan setelah app2 untuk tingkat kesalahan. Jika> 0, maka .bat keluar dan setel tingkat kesalahan ke 1 untuk aplikasi panggilan1.
if %ERRORLEVEL% GEQ 1 EXIT /B %ERRORLEVEL%
.
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
mungkin opsi yang lebih baik. Tetapi Anda benar-benar perlu tahu program apa yang mengembalikan kesalahan. Beberapa program mengembalikan kode non-nol tertentu untuk jenis kesuksesan khusus.