%ERRORLEVEL%
содержит код состояния ранее выполненной команды. Если команда выполнена успешно, код будет равен 0, иначе это будет что-то еще. Итак, рассмотрим следующее:
> cd foo #there is no foo
The system cannot find the path specified. #expected
> echo %ERRORLEVEL%
1 #expected
> echo %ERRORLEVEL%
1 #unexpected
Почему второе echo
возвращает 0
? Я ожидаю, что, поскольку первый эхо завершится успешно, %ERRORLEVEL%
изменится на 0
а второй echo
выведет 0
.