Чому відлуння не змінює% ERRORLEVEL%?


3

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



2
Не всі команди скидають ERRORLEVEL при успішному виконанні. echoє серед тих, кого немає. Див. Які внутрішні команди cmd.exe очищають ERRORLEVEL до 0 після успіху? .
dxiv

Відповіді:


0

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

Я не бачу, чому ECHOб повернути ERRORLEVEL, оскільки зараз існує помилка.


Хоча це посилання може відповісти на питання, краще включити сюди суттєві частини відповіді та надати посилання для довідки. Відповіді лише на посилання можуть стати недійсними, якщо пов’язана сторінка зміниться.
Дональд Дак
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.