FlatX007, не разобрались, условие:
Код:
будет истинным всегда[/i], поскольку в данном виде инструкции
IF сравнение идёт не на равенство, а на «больше или равно»:
Цитата
if /?:
IF [NOT] ERRORLEVEL число команда
…
ERRORLEVEL число: Условие является истинным, если код возврата последней выполненной программы не меньше указанного числа.
Тут надо либо в обратном порядке, наподобие:
Код:
Код: Выделить всё
IF ERRORLEVEL 2 Goto :label1
IF ERRORLEVEL 1 Goto …
rem ERRORLEVEL 0
…
GOTO :EOF
:label1
…
GOTO :EOF
либо, как Вы и пробовали, использовать переменную окружения %errorlevel% (при включённой расширенной обработке команд [по умолчанию — включена][/i]), только в несколько ином виде, наподобие:
Код:
Код: Выделить всё
WinRAR a -r Pictures.rar Bitmaps
IF %errorlevel% equ 0 (
Exit
) ELSE (
IF %errorlevel% equ 1 call :ProcessError1
)