帮助信息:

    1. 退出 CMD.EXE 程序(命令解释器)或当前批处理脚本。
    
    2. 
    3. EXIT [/B] [exitCode]
    
    4. 
    5.   /B          指定要退出当前批处理脚本而不是 CMD.EXE。如果从一个
    
    6.               批处理脚本外执行,则会退出 CMD.EXE
    
    7. 
    8.   exitCode    指定一个数字号码。如果指定了 /B,将 ERRORLEVEL
    
    9.               设成那个数字。如果退出 CMD.EXE,则用那个数字设置
    
    10.               过程退出代码。

    命令概括:


    exit,意为“退出”;


    /b,全英文batch(不确定);


    code,意为“代码”,exitcode就是“退出码”;




    参数详解:


    1.退出命令解释器;


    脚本的运行都依赖解释器,批处理依赖cmd.exe,vbs依赖wscript.exe,没有解释器,脚本都不能运行。

      1. @echo off
      
      2. echo hello
      
      3. exit
      
      4. echo world
      
      5. pause

      exit 是退出解释器,造成world不显示,pause不执行。



      2.退出当前批处理脚本;


      乍一看,觉得和第一没什么区别,但事实上区别很大。



      试着运行下面的代码,比较其中差别:



      保存两个批处理,分别命名test、a;运行test.bat;



      1. @echo off
      
      2. echo 这是test.bat
      
      3. echo 调用a.bat之前的状态
      
      4. call a.bat
      
      5. echo 调用a.bat之后的状态
      
      6. echo %errorlevel%
      
      7. pause

      
      1. @echo off
      
      2. echo.
      
      3. echo 这是a.BAT文件
      
      4. echo.
      
      5. exit /b

      复制代码

      现在把a.bat的内容替换成:

      1. @echo off
      
      2. echo.
      
      3. echo 这是a.BAT文件
      
      4. echo.
      
      5. exit /b 12


      再次运行test.bat



      如果你细心的话,就会发现errorlevel的值变了,默认是0,/b 12之后就是12了。



      没错,EXIT [/B] [exitCode]中[exitCode]就是用来设置,退出码errorlevel的值。




      那么/b又有什么用呢?



      正如那句话所说,

      要知道一件事物的重要性,那就看看没有这件事物时世界会是怎样。




      继续将a.bat的内容替换:

      1. @echo off
      
      2. echo.
      
      3. echo 这是a.BAT文件
      
      4. echo.
      
      5. exit

      再次运行test.bat



      结果,黑框一闪而过,因为这三条语句都没有执行,

      1. echo 调用a.bat之后的状态
      
      2. echo %errorlevel%
      
      3. pause


      因此exit /b是用来退出批处理脚本的,而exit是用来退出解释器的;



      可以这么理解,exit /b 退出子进程,而exit则退出父进程,子进程结束不影响父进程的执行,但是父进程结束那就是彻底的结束。



      (当然,如果只有一个进程,exit /b也是能结束父进程的)。



      exit /b 一般和call 一起使用。