What command can I put at the end of a batch file to prevent auto-closing of the console after the execution of the file?
21 Answers
In Windows/DOS batch files:
pause This prints a nice "Press any key to continue . . . " message
Or, if you don't want the "Press any key to continue . . ." message, do this instead:
pause >nul 6 Comments
Depends on the exact question!
Normally pause does the job within a .bat file.
If you want cmd.exe not to close to be able to remain typing, use cmd /k command at the end of the file.
3 Comments
cmd /k before your command instead. & cmd /k won't work./k wherever we call the cmd that closes, as @Noumenon suggests? Admittedly, this is getting closer to what the OP asked, but expanding the scope of the question, I don't think it would need to be at the end of the file.cmd /k should be placed at end, with no arg. \ Otherwise, all the following cmd below cmd /k seems wont be executed. \ If you only run a single command, I think you do place at front, like cmd /k <command>.If you want cmd.exe to not close, and able to continue to type, use
cmd /k
Just felt the need to clarify what /k does (from windows website):
/k: Carries out the command specified by string and continues.
So cmd /k without follow up command at the end of bat file will just keep cmd.exe window open for further use.
On the other hand pause at the end of a batch file will simply pause the process and terminate cmd.exe on first button press
Comments
If you are using Maven and you want to skip the typing and prevent the console from close to see the result you need to use the CALL command in the script, besides just the 'mvn clean install'.
Like this will close the console
ECHO This is the wrong exemple mvn clean install pause Like this the console will stay open
ECHO This is the right exemple CALL mvn clean install pause If you dont use the CALL command neither of the pasts exemples will work. Because for some reason the default behaviour of cmd when calling another batch file (which mvn is in this case) is to essentially replace the current process with it, unlike calling an .exe
5 Comments
call <myCommand> resolved this problem : My prompt stoped closing after the first executionThe below way of having commands in a batch file will open new command prompt windows and the new windows will not exit automatically.
start "title" call abcd.exe param1 param2 start "title" call xyz.exe param1 param2 1 Comment
Add cmd.exe as a new line below the code you want to execute:
c:\Python27\python D:\code\simple_http_server.py cmd.exe 2 Comments
python script.py %1 && cmdmy way is to write an actual batch (saying "foo.bat") to finish the job; then create another "start.bat":
@echo off cmd /k foo.bat I find this is extremely useful when I set up one-time environment variables.
1 Comment
cmd /k (without any command) at the end of foo.bat file and run that. You don't need a separate start.bat file.I know I'm late but my preferred way is:
:programend pause>nul GOTO programend In this way the user cannot exit using enter.
1 Comment
Run the .exe file and then pause the cmd
batch script example :
@echo off myProgram.exe PAUSE batch script example with arguments :
@echo off myProgram.exe argumentExample1 argumentExample2 PAUSE I added @echo off because I don't want to show C:\user\Desktop>myProgram.exe and C:\user\Desktop>PAUSE in the cmd
Comments
Possibility 1: Just make 2 .bat files and write into the first:
start <filename> // name of 2nd batch file exit Batch file 2 is the file that wont close in the end. So now when you open batch nr.1 It will start the 2nd and cloe itself. When the 2nd finishes it will not close entirely (as long as you wont put exit at the end)
Possibility 2: Batch file 1:
call <filename> cls echo End of file pause <any code you want> When the 2nd file ends then it will proceed to file 1 again and output the rest of it. With that you can even make error handlers. If nr.1 crashes it goes into nr.2 and displays it
Comments
Easy, add cmd to your last line of bat, BUT! if you reset or clear your system path, you must start your cmd with the full path, like:
%windir%\system32\cmd.exe For example, I have a bat file to reset jdk to old version like this:
PATH=C:\Program Files\Java\jdk1.6.0_45\bin;C:\apache-ant-1.7.1\bin SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45 %windir%\system32\cmd.exe since I reset the system path, I have to run cmd with the full path, or the system can't find cmd.exe, it will fail to run cmd, and just close the window, and you can't see the error msg.

pauseorcmd /kdoesnt work, \ addcallto your command \ -- >if the command before has any type of exit code (even on success) in it then it seems to close the window, \ -- ref: stackoverflow.com/questions/4666045/…