выход из пакетного файла в подпрограмме - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть скрипт с различными подпрограммами:

REM ---------------MAIN------------------------START----------------------------
call :SUB_GetStartTime
call :SUB_SettingVariables 
call :SUB_CheckingParameters %* 
call :SUB_Copy 
call :SUB_GetEndTime
call :SUB_WriteLog
call :SUB_EndScreen

REM ---------------MAIN------------------------END------------------------------

На SUB_CheckingParameters у меня есть это, если запрос:

if "%~1"=="/help" (
    GOTO SUB_HELP
)

Если я передам параметр / справку, он перейдет в окно справки:

cls
ECHO ===================HELP==============
ECHO help text help text help text
ECHO =====================================
timeout /t 120
exit /b

после exit /b Я хочу, чтобы скрипт завершился, но он просто переходит к моей следующей подпрограмме (SUB_Copy). Разве скрипт не должен заканчиваться, потому что я использую GOTO SUB_Help, а не call?

Может кто-нибудь помочь мне и сказать, что я делаю не так?

1 Ответ

0 голосов
/ 27 апреля 2018

Обычно я справляюсь с этим, возвращая уровень ошибки:

@Echo off
REM ---------------MAIN------------------------START----------------------------
call :SUB_GetStartTime
call :SUB_SettingVariables 
call :SUB_CheckingParameters %* || Exit /b 1
call :SUB_Copy 
call :SUB_GetEndTime
call :SUB_WriteLog
call :SUB_EndScreen
REM ---------------MAIN------------------------END------------------------------
Echo end of main
Pause
Goto :Eof

:SUB_CheckingParameters
if /I "%~1"=="/help" GOTO SUB_HELP

:SUB_GetStartTime
:SUB_SettingVariables
:SUB_Copy
:SUB_GetEndTime
:SUB_WriteLog
:SUB_EndScreen

Echo:We are in %~0 Args %*
Goto :Eof

:SUB_HELP
rem cls
ECHO ===================HELP==============
ECHO help text help text help text
ECHO =====================================
timeout /t 120
exit /b 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...