Выйдите из сценария пакетной обработки из функции

У меня есть проблема с моим пакетным файлом. Это создает несколько программ автоматически путем выполнения чего-то вроде этого:

  • установите некоторые флаги компиляции
  • выполненный 'gmake все'
  • вызовите "ошибочную функцию" уровня проверки и если errorlevel 1, выйти

Таким образом, это похоже на это:

set FLAG=1
...
gmake all
call :interactive_check
set OTHERFLAG=1
...
gmake all
call :interactive_check

Существует 6 или 7 из них (и это могло бы вырасти). Таким образом, я сделал функцию для проверки errorlevel вместо копии/вставки это на каждом шаге. Проблема - это: проверка ошибок сделана через функцию:

:interactive_check
if errorlevel 1 (
echo.
echo /!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\
echo Error in compilation process... exiting
echo /!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\/!\
echo.
cd %root_dir%
exit /B 1
) ELSE (
echo.Continuing to next step
)
goto:eof

Теперь, при выполнении его, exit /B 1 просто выходит из функции, но не пакетного файла.

Вы знаете, как выйти из полного пакетного файла, не имея необходимость к скопировать/вставить мой "если errorlevel 1.." на каждом шаге?

18
задан skaffman 12 July 2010 в 10:52
поделиться