Я пытаюсь сохранить переменную среды ERRORLEVEL
в локальной переменной пакета. Но это всегда оказывается 0
.Как хранить ERRORLEVEL в переменной?
CALL foo.exe
SET LEVEL=%ERRORLEVEL%
IF ERRORLEVEL 1 (
SET /A ERRORCOUNT=ERRORCOUNT+1
) ELSE (
SET /A OK=OK+1
)
ECHO/ >> logtemp.txt
ECHO ** EXIT %LEVEL% *******************************
Я попытался ECHO %ERRORLEVEL%
, но он всегда печатать 0
тоже.
foo.exe
генерирует ошибку, и ее можно увидеть по ECHO %ERRORLEVEL%
из командной строки, и ERRORCOUNT
обновлен правильно.
Проблема заключается не в том, чтобы установить переменную среды «ERRORLEVEL», а if ... else работает нормально. Проблема состоит в том, чтобы установить значение «LEVEL» в значение переменной среды «ERRORLEVEL», поэтому «ECHO% LEVEL%» будет печатать переменную среды «ERRORLEVEL» для 'CALL'. –
Я протестировал код, и он работает. Но, вероятно, вы не видите соответствующую часть своего сценария. Думаю: ваша проблема - это процентное расширение блоков кода. См. Второй образец – jeb
Спасибо, я не знал! ПЕРЕМЕН! синтаксис ... отлично работает сейчас :) –