• Exit 与 Goto :eof 在批处理中的区别【转】


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

      1.) 运行 Goto :eof 后,CMD 返回并将等待下一命令。 

      2.) 运行 Exit 后,CMD 将直接关闭并返回到曾启动 Cmd.exe 的程序或返回到“资源管理器”。

      3.) 运行 Exit /b 后,CMD 将直接关闭并返回到曾启动 Cmd.exe 的程序或返回到“资源管理器”。

      Exit

      退出当前批处理脚本或 Cmd.exe 程序(即,命令解释程序)并返回到曾启动 Cmd.exe 的程序或返回到“程序管理器”。

      语法

      exit [/b] [ExitCode]

      参数

      /b
      退出当前批处理脚本。
      ExitCode
      指定数字编号。
      /?
      在命令提示符显示帮助。

      注释

      • 如果在批处理脚本之外使用 /b,就会退出 Cmd.exe。
      • 如果使用 /b,Cmd.exe 将 ERRORLEVEL 设置为指定的 ExitCode。如果退出 Cmd.exe,Cmd.exe 则使用指定的 ExitCode 设置进程退出代码。
    2. 在批处理的最后一个执行语句里使用:

      1.) 使用 Goto :eof ,双击该批处理,运行完成后 CMD 窗口关闭;在 CMD 中运行此批处理,运行完成后 CMD 返回并将等待下一命令。

      @echo off

      pause

      goto :eof

      2.) 使用 Exit ,双击该批处理,运行完成后 CMD 窗口关闭;在 CMD 中运行此批处理,运行完成后 CMD 将直接关闭并返回到曾启动 Cmd.exe 的程序或返回到“资源管理器”。

      @echo off

      pause

      exit

      3.) 使用 Exit /b ,双击该批处理,运行完成后 CMD 窗口关闭;在 CMD 中运行此批处理,运行完成后 CMD 返回并将等待下一命令。

      @echo off

      pause

      exit /b

    3. 在 Call 的子标签中:

      1.)

      @echo off
      for /l %%i in (1 1 3) do call :han%%i
      pause&goto :eof
      :han1
      echo 执行了:han1
      goto :eof
      echo 多余1
      :han2
      echo 执行了:han2
      goto :eof
      echo 多余2
      :han3
      echo 执行了:han3
      goto :eof
      echo 多余3

      使用 Goto :eof ,将返回到 call 命令,for 也将继续循环迭代。

      2.)  

      @echo off
      for /l %%i in (1 1 3) do call :han%%i
      pause&exit
      :han1
      echo 执行了:han1
      exit
      echo 多余1
      :han2
      echo 执行了:han2
      exit
      echo 多余2
      :han3
      echo 执行了:han3
      exit
      echo 多余3

      使用 Exit ,批处理将被直接退出,不能返回到 Call ,for 循环迭代被终止。

      3.)  

      @echo off
      for /l %%i in (1 1 3) do call :han%%i
      pause&exit /b
      :han1
      echo 执行了:han1
      exit /b
      echo 多余1
      :han2
      echo 执行了:han2
      exit /b
      echo 多余2
      :han3
      echo 执行了:han3
      exit /b
      echo 多余3

      使用 Exit /b ,将返回到 call 命令,for 也将继续循环迭代。

    4. 特例:

      有一些情况下,在 CMD 窗口下运行 Exit 并不是退出 CMD ,例如:

      在 Ftp 子系统中,运行 ! ,从 ftp 子系统临时退出到命令提示符下,这时运行 Exit ,将返回到 ftp 子系统。 

      C:WINDOWSsystem32命令提示符本文转自http://blog.sina.com.cn/hygxchxz

      Microsoft Windows XP [版本 5.1 2600]
      <C> 版权所有 1985-2001 Microsoft Corp.

      本文转自http://blog.sina.com.cn/hygxchxz

      C:Documents and Settings寒夜孤星>Ftp
      ftp> !

      Microsoft Windows XP [版本 5.1 2600]
      <C> 版权所有 1985-2001 Microsoft Corp.

      本文转自http://blog.sina.com.cn/hygxchxz

      C:Documents and Settings寒夜孤星>Exit
      ftp> Quit

      本文转自http://blog.sina.com.cn/hygxchxz

      C:Documents and Settings寒夜孤星>

      本文转自http://blog.sina.com.cn/hygxchxz

      智能 ABC 半:

      在命令提示符下嵌套新实例 CMD.exe 时,运行 Exit 关闭嵌套的命令行解释器,而不是父命令行解释器。

      C:WINDOWSsystem32命令提示符本文转自http://blog.sina.com.cn/hygxchxz

      Microsoft Windows XP [版本 5.1 2600]
      <C> 版权所有 1985-2001 Microsoft Corp.

      本文转自http://blog.sina.com.cn/hygxchxz

      C:Documents and Settings寒夜孤星>CMD

      Microsoft Windows XP [版本 5.1 2600]
      <C> 版权所有 1985-2001 Microsoft Corp.

      本文转自http://blog.sina.com.cn/hygxchxz

      C:Documents and Settings寒夜孤星>Exit

      本文转自http://blog.sina.com.cn/hygxchxz

      C:Documents and Settings寒夜孤星>

      本文转自http://blog.sina.com.cn/hygxchxz

      智能 ABC 半:

    5. 关于 goto : eof 的详解:

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

      注释: 必须满足以下两个条件。 1.) 启用了命令扩展(即默认状态)。

      2.) 使用 goto 和 :EOF 标签时,必须在标签前插入冒号。

    6. 关于 exit /b [ExitCode] 的详解:

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

      示例: 必将下面的批处理保存到C盘,并命名为han.bat。

      @echo off
      echo 命令
      exit /b 30194447
       

      然后,我们在 CMD 命令提示符下进行操作:

      C:WINDOWSsystem32命令提示符本文转自http://blog.sina.com.cn/hygxchxz

      Microsoft Windows XP [版本 5.1 2600]
      <C> 版权所有 1985-2001 Microsoft Corp.

      本文转自http://blog.sina.com.cn/hygxchxz

      C:Documents and Settings寒夜孤星>C:han.bat

      命令

      本文转自http://blog.sina.com.cn/hygxchxz

      C:Documents and Settings寒夜孤星>Echo %errorlevel%
      30194447

      本文转自http://blog.sina.com.cn/hygxchxz

      C:Documents and Settings寒夜孤星>

      本文转自http://blog.sina.com.cn/hygxchxz

      智能 ABC 半:

     
    转自
    Exit 与 Goto :eof 在批处理中的区别_寒夜孤星_新浪博客
    http://blog.sina.com.cn/s/blog_51a4af870100e0st.html
  • 相关阅读:
    模块之datetime
    模块之time模块
    模块之相对路径导入
    模块之包跨模块导入
    模块
    迭代器
    leetcode234 回文链表(Easy,不简单)
    leetcode543 二叉树的直径(Easy 不简单)
    leetcode538 把二叉树转换为累加树(Easy,不简单)
    leetcode136 只出现一次的数字(Easy)
  • 原文地址:https://www.cnblogs.com/paul8339/p/11928605.html
Copyright © 2020-2023  润新知