2

%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 .

1 ответ1

0

Это потому, что только набор команд возвращает ERRORLEVEL , как кто-то сказал, вот список: https://stackoverflow.com/questions/34968009/which-cmd-exe-internal-commands-clear-the-errorlevel-to-0- на-успех /34968021 # 34968021

Я не понимаю, почему ECHO вернул бы ERRORLEVEL, потому что теперь есть ошибки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .