2011-10-13 6 views
8

内部エラーが私は、アーカイブの内容を一覧表示するために、次の行を実行するバッチファイルを持っている:キャッチバッチファイル(7-ZIP)

"\Program Files\7-Zip\7z.exe" l "\Backup Google Docs.7z" 

アーカイブが意図的に破損しています。

cmd.exeを表示する。この:

enter image description here

がどのように私は私のコードでこのエラーをキャッチすることができますか?

答えて

19

すべてのプログラムの終了コードは、バッチスクリプトの変数%ERRORLEVEL%に格納されています。 7-ZIPマニュアルから

:だから

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 

:あなたが行うことができます:%ERRORLEVEL%したがって、あなたがそれらを置く必要があり、N以上であることを

"\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 

注意、if errorlevel Nチェック降順。

+0

ありがとう。それは完璧に動作します! –

4

7z.exeの呼び出し直後にERRORLEVELが1に設定されていることを確認し、適切に反応します。 ERRORLEVELは、最後に実行されたプログラムの終了コードです。 1以上の終了コードはエラーを示し、ゼロは成功を示します。 IF ERRORLEVELコマンドは、出口が引数より大きいか等しいかどうかをチェックし、IF ERRORLEVELが1つ以上のエラー・レベルをチェックします。ここで

は一例です:

"\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 
関連する問題