Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 正在退出子例程中的批处理文件_Batch File_Cmd - Fatal编程技术网

Batch file 正在退出子例程中的批处理文件

Batch file 正在退出子例程中的批处理文件,batch-file,cmd,Batch File,Cmd,我有一个带有不同子程序的脚本: REM ---------------MAIN------------------------START---------------------------- call :SUB_GetStartTime call :SUB_SettingVariables call :SUB_CheckingParameters %* call :SUB_Copy call :SUB_GetEndTime call :SUB_WriteLog call :SUB_End

我有一个带有不同子程序的脚本:

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查询:

if "%~1"=="/help" (
    GOTO SUB_HELP
)
如果我传递参数/帮助,它将进入我的帮助窗口:

cls
ECHO ===================HELP==============
ECHO help text help text help text
ECHO =====================================
timeout /t 120
exit /b
退出/b后,我希望脚本结束,但它只是转到下一个子例程(SUB_Copy)。脚本是否应该结束,因为我使用了
GOTO-SUB\u-Help
而不是
call


有人能帮帮我,告诉我我做错了什么吗

我通常通过传回错误级别来处理此问题:

@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

EXIT/B
的作用与
GOTO:EOF
相同。另请参见
调用子例程(:label)
在Just do
exit
without/b或
goto:EOF
goto:EOF
执行与
exit/b
exit
关闭cmd相同的操作,我不想那样。那你想去哪里?为
:main
创建一个标签,然后简单地执行
goto:main
而不是
exit/b