неправильное значение% errorlevel% во вложенном файле .bat - PullRequest
0 голосов
/ 15 мая 2018

Я написал файл .bat для первого запуска программы, если она завершена правильно, я запускаю другую программу и проверяю возвращаемое значение.

first-program.exe
IF "%ERRORLEVEL%"=="0" (
    second-program.exe
    IF "%ERRORLEVEL%"=="0" (
        ECHO OK
    ) ELSE (
        ECHO NOK
    )
)

Однако второе %ERRORLEVEL% всегда равно первому, для него не устанавливается возвращаемое значение second-program.exe.

1 Ответ

0 голосов
/ 15 мая 2018

Оба экземпляра %ERRORLEVEL% находятся в одном и том же блоке кода, и, таким образом, оба получают свои значения в момент обновления первого экземпляра. Рассмотрите возможность включения отложенного расширения переменных с enabledelayedexpansion и замены %ERRORLEVEL% на !ERRORLEVEL! для обновления каждого экземпляра по отдельности. Например:

@echo off
setlocal enabledelayedexpansion
first-program.exe
IF "!ERRORLEVEL!"=="0" (
    second-program.exe
    IF "!ERRORLEVEL!"=="0" (
        ECHO OK
    ) ELSE (
        ECHO NOK
    )
)
endlocal
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...