EXIT – Windows CMD Command
Quit the current batch script, quit the current subroutine or quit the command processor (CMD.EXE) optionally setting an errorlevel code.
EXIT [/B] [exitCode]
/B When used in a batch script, this option will exit
only the script (or subroutine) but not CMD.EXE
If executed from outside a batch script, if will quit CMD.exe
exitCode Sets the %ERRORLEVEL% to a numeric number.
If quitting CMD.EXE, set the process exit code no.
To close an interactive command prompt, the keyboard shortcut ALT + F4 is an alternative to typing EXIT.
EXIT /b has the option to set a specific errorlevel, EXIT /b 0 for sucess, EXIT /b 1 (or greater) for an error.
The exit code can be an integer of up to 10 digits in length (positive or negative).
EXIT without an ExitCode acts the same as goto:eof and will not alter the ERRORLEVEL
n.b. You should never attempt to directly write to the %ERRORLEVEL% variable, (SET ERRORLEVEL n ) instead use EXIT /b n as a safe way to set the internal ERRORLEVEL pseudo-variable to n.
When EXIT /b used with FOR /L, the execution of the commands in the loop is stopped, but the loop itself continues until the end count is reached. This will cause slow performance if the loop is (pointlessly) counting up to a large number.
In the case of an infinite loop, this EXIT /b behavior will cause the script to hang until manually terminated with Ctrl + C
Exiting nested FOR loops, EXIT /b can be used to exit a FOR loop that is nested within another FOR loop.
This will only work if the inner FOR loop is contained in a separate subroutine so that EXIT /b (or goto:eof) will terminate the subroutine.
Exit if a required file is missing:
If not exist MyimportantFile.txt Exit /b
Echo If we get this far the file was found
Set the errorlevel to 5:
Exit /B 5
Use EXIT /b to exit a nested FOR loop (so skipping the values X,Y and Z), but still continue back to the main outer loop:
For %%A in (alpha beta gamma) DO (
Echo Outer loop %%A
For %%B in (U V W X Y Z) DO (
if %%B==X ( exit /b 2 )
Echo Inner loop Outer=%%A Inner=%%B
EXIT is an internal command.
If Command Extensions are disabled, the EXIT command will still work but may output a spurious ‘cannot find the batch label‘ error.