2011-10-13 15 views
8

içinde bir hata ben bir arşiv içeriğini listelemek için aşağıdaki satırı yürütmek olduğu bir toplu iş dosyası var.Yakalama bir toplu dosyası (7-zip)

cmd.exe görüntüler bu:

enter image description here

nasıl kodunda bu hatayı yakalayabilir?

cevap

19

Herhangi bir programın çıkış kodu, bir toplu iş komut dosyasında %ERRORLEVEL% değişkeninde saklanır. Yani

7-Zip returns the following exit codes: 

Code Meaning 
0 No error 
1 Warning (Non fatal error(s)). For example, one or more files were locked by some other application, so they were not compressed. 
2 Fatal error 
7 Command line error 
8 Not enough memory for operation 
255 User stopped the process 

: 7-Zip kılavuzunda itibaren

Yapabileceğiniz:

"\Program Files\7-Zip\7z.exe" l "\Backup Google Docs.7z" 
if errorlevel 255 goto:user_stopped_the_process 
if errorlevel 8 goto:not_enough_memory 
if errorlevel 7 goto:command_line_error 
if errorlevel 2 goto:fatal_error 
if errorlevel 1 goto:ok_warnings 

Dikkat if errorlevel N çekler %ERRORLEVEL% büyük veya N den eşit olduğunu, bu nedenle koymalıdır azalan sipariş.

+0

Thanx: Burada

bir örnektir. Bu mükemmel çalışıyor! –

4

ERRORLEVEL, 7z.exe çağrısından hemen sonra 1'e ayarlı olup olmadığını ve uygun şekilde yanıt verdiğini kontrol edin. ERRORLEVEL, çalıştırılan son programın çıkış kodudur. Sıfırın başarısını gösterirken 1 veya daha fazla bir çıkış kodu bir hatayı gösterir. IF ERRORLEVEL komutu, çıkışın argümandan büyük veya eşit olup olmadığını kontrol eder, bu nedenle IF ERRORLEVEL bir veya daha fazla hata seviyesini kontrol eder.

"\Program Files\7-Zip\7z.exe" l "\Backup Google Docs.7z" > nul 
IF ERRORLEVEL 1 goto ziperror 
@echo 7-Zip worked 
goto :eof 

:ziperror 
@echo 7-Zip failed 
goto :eof 
İlgili konular