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

<p>внутри командного файла в windows я использую <a href="http://www.7-zip.org/">7-zip</a> вот так:</p><pre><code>...\right\_path\7z a output\_file\_name.zip file\_to\_be\_compressed </code></pre><p>как я могу проверить код выхода <code>7z</code> и предпринять соответствующие действия?</p>

<p>проверить код возврата, больший или равный 1:</p><pre><code>if errorlevel 1 echo error </code></pre><p>или же</p><pre><code>if %errorlevel% geq 1 echo error </code></pre><p>или проверить код возврата, равный 0:</p><pre><code>if %errorlevel% equ 0 echo ok </code></pre><p>вы можете использовать другие команды, такие как <code>goto</code>, где я показываю <code>echo</code>.</p>

<p>это действительно работает, когда у вас есть: app1.exe вызывает -> .bat, который работает -> app2.exe</p><p>app2 возвращает уровень ошибки 1 ... но вам нужно отловить это в .bat и повторно поднять его до app1 ... в противном случае .bat съедает уровень ошибки, и app1 никогда не узнает.</p><p>метод:</p><p>в .bat:</p><pre><code>app2.exe if %errorlevel% geq 1 exit /b 1 </code></pre><p>это проверка после app2 уровня ошибки. если> 0, то .bat завершается и устанавливает errorlevel в 1 для вызывающего app1.</p>