EXIT 与 GOTO :EOF 命令的区别

1.  CMD 命令提示符窗口直接运行

(1) 运行 GOTO :EOF , CMD 返回并将等待下一条命令.

(2) 运行 EXIT , CMD 将直接关闭并返回到曾启动 cmd.exe 的程序或返回到资源管理器”.

(3) 运行 EXIT /B , CMD 将直接关闭并返回到曾启动 cmd.exe 的程序或返回到资源管理器”.

: 命令 EXIT GOTO :EOF 的用法.

 

 

2.  在批处理文件的最后一个执行语句中使用

(1) 使用 GOTO :EOF

 

@REM TEST.bat

@REM ------------

 

@PAUSE

@GOTO :EOF

 

a)   双击运行 TEST.bat, 运行完成后 CMD 窗口关闭.

b)   CMD 窗口中运行 TEST.bat, 运行完后 CMD 返回并等待下一条命令.

 

(2) 使用 EXIT

 

@REM TEST2.bat

@REM ------------

 

@PAUSE

@EXIT

 

a)   双击运行 TEST2.bat, 运行完成后 CMD 窗口关闭.

b)   CMD 窗口中运行 TEST2.bat, 运行完后 CMD 将直接关闭并返回到曾启动 cmd.exe 的程序或返回到资源管理器”.

 

(3) 使用 EXIT /B

 

@REM TEST3.bat

@REM ------------

 

@PAUSE

@EXIT /B

 

a)   双击运行 TEST3.bat, 运行完成后 CMD 窗口关闭.

b)   CMD 窗口中运行 TEST3.bat, 运行完后 CMD 返回并等待下一条命令.

3.  CALL 命令子标签中使用

(1) 使用 GOTO :EOF, 将返回到 CALL 命令, FOR 循环也将继续迭代.

 

@REM TEST4.bat

@REM ------------

 

@ECHO OFF

FOR /L %%i IN (1,1,3) DO CALL :FUNC%%i

PAUSE

@ECHO ON

@GOTO :EOF

 

:FUNC1

ECHO CALL :FUNC1

GOTO :EOF

 

:FUNC2

ECHO CALL :FUNC2

GOTO :EOF

 

:FUNC3

ECHO CALL :FUNC3

GOTO :EOF

 

(2) 使用 EXIT, 将直接从批处理文件(TEST5.bat)退出, 不能返回到 CALL 命令, FOR 循环迭代被终止.

 

@REM TEST5.bat

@REM ------------

 

@ECHO OFF

FOR /L %%i IN (1,1,3) DO CALL :FUNC%%i

PAUSE

@ECHO ON

@EXIT

 

:FUNC1

ECHO CALL :FUNC1

EXIT

 

:FUNC2

ECHO CALL :FUNC2

EXIT

 

:FUNC3

ECHO CALL :FUNC3

EXIT

 

(3) 使用 EXIT /B, 将返回到 CALL 命令, FOR 循环也将继续迭代.

 

@REM TEST6.bat

@REM ------------

 

@ECHO OFF

FOR /L %%i IN (1,1,3) DO CALL :FUNC%%i

PAUSE

@ECHO ON

@EXIT /B

 

:FUNC1

ECHO CALL :FUNC1

EXIT /B

 

:FUNC2

ECHO CALL :FUNC2

EXIT /B

 

:FUNC3

ECHO CALL :FUNC3

EXIT /B

 

: 命令CALL :label 的用法.

 

4.  例外情况

一些情况下, CMD 窗口中运行 EXIT 并不是退出 CMD.

(1) FTP 子系统中, 运行 ! FTP 子系统临时退出到命令提示符下, 这是运行 EXIT, 将返回到 FTP 子系统.

 

(2) 在命令提示符下嵌套新实例 cmd.exe , 运行 EXIT 将关闭嵌套的命令解释器, 而不是父命令解释器.

5.  关于 GOTO :EOF 的详解

功能: 可以在不定义标签的情况下将控制传送到当前批处理脚本文件的末端.

备注: 必须满足以下两个条件.

(1) 启用了命令扩展(即默认状态);

(2) 使用 GOTO :EOF 标签时, 必须在标签前插入(英文状态)冒号.

6.  关于 EXIT /B [exitCode] 的详解

功能: cmd.exe ERRORLEVEL 设置为指定的 exitCode. 如果退出 cmd.exe, cmd.exe 则使用指定的 exitCode 设置进程退出代码.

@REM TEST7.bat

@REM ------------

 

@ECHO TEST7.bat

@EXIT /B 30194447

CMD 命令提示符下执行:

 

 

 


 

该博客的 Word 格式文档 http://download.csdn.net/source/2730258

你可能感兴趣的:(批处理,cmd,脚本,文档,扩展)