I have a batch script that I use to launch a program, such as notepad.exe
. When I double click on this batch file, notepad starts normally, but the black window of the cmd
who launched notepad.exe
remains in the background. What do I have to do in order to launch notepad.exe
and make the cmd window disappear?
edit: is more complicated than using \I
.
The cmd
calls cygwin
, and cygwin
starts notepad
. I use
start \I \path\cygwin\bin\bash.exe
and the first window (cmd) disappears, but a second window (\cygwin\bin\bash.exe) is still on the background. In the cygwin script I used notepad.exe &
and then exit.
batch-file Echo @Echo off @echo off prevents the prompt and contents of the batch file from being displayed, so that only the output is visible. The @ makes the output of the echo off command hidden as well.
Edit your bat file by right clicking on it and select “Edit” from the list. Your file will open in notepad. Now add “PAUSE” word at the end of your bat file. This will keep the Command Prompt window open until you do not press any key.
Type taskkill /IM your-program-name. your-program-extension /T /F and then hit ↵ Enter . Repeat this command for as many programs as you want! When finished, type exit on the last line and hit ↵ Enter .
start "" "%SystemRoot%\Notepad.exe"
Keep the ""
in between start and your application path.
Added explanation:
Normally when we launch a program from a batch file like below, we'll have the black windows at the background like OP said.
%SystemRoot%\Notepad.exe
This was cause by Notepad running in same command prompt (process). The command prompt will close AFTER notepad is closed. To avoid that, we can use the start
command to start a separate process like this.
start %SystemRoot%\Notepad.exe
This command is fine as long it doesn't has space in the path. To handle space in the path for just in case, we added the "
quotes like this.
start "%SystemRoot%\Notepad.exe"
However running this command would just start another blank command prompt. Why? If you lookup to the start /?
, the start
command will recognize the argument between the "
as the title of the new command prompt it is going to launch. So, to solve that, we have the command like this:
start "" "%SystemRoot%\Notepad.exe"
The first argument of ""
is to set the title (which we set as blank), and the second argument of "%SystemRoot%\Notepad.exe"
is the target command to run (that support spaces in the path).
If you need to add parameters to the command, just append them quoted, i.e.:
start "" "%SystemRoot%\Notepad.exe" "<filename>"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With