10 Ways to Run Batch Files Silently & Hide CMD Window
Most ordinary Windows users never use the Command Prompt and have no idea what sort of things you can do from the command line. More experienced users will know that running command line commands can be very useful for a range of tasks and grouping everything into a single batch file to process it all together can be very powerful.
One inconvenience with running batch files is that they always open a console window which shows the output of the commands being executed. This can be important if you want to interact or see what is happening while the batch file is running but a bit annoying if you want to run the batch script quietly in the background or while starting windows.
For short batch files, the console window may appear and disappear in a flash or stay open for longer if more commands are being executed. There is no standard built in way to completely hide the console window from showing so if you want to do that another solution is required. Here we show you some different ways to make your batch script run silently without a console window showing.
Note: When using a method to hide the console window make sure the batch script contains no commands that are likely to stop the script before it exits, such as pause or requiring user input like a Yes/No response. For example, if a script has been converted into an executable and requires interaction, you won’t be able to do anything and the process will stay in Task Manager until it’s manually killed.Run a Silent Batch Script Using a Third Party Utility
A simple and common solution for running a batch file silently is launching it via a third party utility that suppresses the console window.
Hidden Start (HStart)
Hidden Start is a portable and quite powerful tool that can launch executables and scripts with several useful options. We are using version 4.2 from 2013 because it’s portable and not as restricted as newer versions. Since version 4.3, Hidden Start is no longer portable and also pops up a nag every time you try to run a hidden console, which makes it useless for this purpose.
Unzip and run the program with HStartUI.exe, the process consists of three steps. Manually add or drop your batch file onto the window, make sure “Hide console window” is checked and optionally check “Run with highest privileges” if your script requires it. Other setup options like priority or starting directory are not essential unless you know the script requires them.
Step 3 shows the output command that has to be manually run. You can use the buttons at the bottom to copy the command, automatically create a shortcut or add an autostart entry into the registry. Note the bypass UAC prompt option is not available in the free version (we show you how to do that for free later).
SilentCMD
This is a small 14KB tool that is not blessed with tons of features but does the simple task which we are looking for. If you are on Windows 10, .NET Framework 3.5 will be offered for install when running the tool if it isn’t already on your system. The basic syntax to use in shortcuts or similar is quite simple.
SilentCMD [path to .bat file] [batch arguments] [options]
There are two additional options in SilentCMD. One is to enable logging with “/log:[path to .txt]” and the other is to start the script after a delay using “/DELAY:[xx seconds]”. Append the option to the end of the command. As long as you don’t need extra functions like elevation or a different starting directory, SilentCMD works nicely and might be all that you need.
NirCMD
Nirsoft’s NirCMD is a small multi function tool that can quietly perform dozens of tasks without popping up any console window. These include ejecting ROM drives, changing audio volumes, enabling screensavers, controlling processes/services and much more. The following command can be used at boot or in a shortcut to run a batch file silently:
nircmd exec hide [path to .bat file]
The exec and hide commands are used to execute the script and hide any console windows from opening.
Include elevatecmd to request administrator privileges for the batch file although it’s only needed if you know commands in your script require elevation.
nircmd elevatecmd exec hide [path to .bat file]
A desktop shortcut can be created manually or you can tell NirCMD to create a shortcut from the command line with the included commands so the silent script is ready to run.
nircmd cmdshortcut “~$folder.desktop$” “SilentBatch” exec hide C:\Users\Raymondcc\MyBatchFile.bat
The above will create a desktop shortcut called SilentBatch which will silently execute the MyBatchFile.bat script. Note that you may have to change the “Start in” location in the shortcut as output from the script that doesn’t supply a path will default to C:\Windows.
On double clicking the NirCMD executable it will offer the option to copy itself to the Windows directory so you only have to use nircmd.exe and not supply a full path every time. It’s advisable to do that if you plan to make use of NirCMD on your computer (make sure to right click and run nircmd.exe as administrator).
For full information about the wealth of commands available, have a read of the full NirCMD Help file.
Raymond.cc Silent Batch Launcher
We also have a little tool that can launch a batch file silently. It’s created in Autoit and is essentially a slightly advanced version of the “Create Your Own Executable File” method on page two. Silent Batch Launcher is designed to be simple to use and provide a slightly different option to the other tools here.
Run the executable and you will be asked to browse for a batch file. An INI file containing the path to the script will then be created next to the executable. Every time you run Silent Batch Launcher from then on it will execute the same batch file as long as the INI file is present.
To run a different script, delete the INI file or hold Shift while launching the tool and it will popup the file requester. The INI file name will match the EXE file name so you can have differently named occurrences of the tool in the same folder. There are two files in the archive, use the “Admin” version if the script requires elevation. Any useful feedback you have about the tool is welcome.
Download Silent Batch Launcher
Note: Because this tool was created with Autoit, it does create some false positives with online virus scanners like VirusTotal.
There are a few other tools that can hide the console window of a batch script that we haven’t mentioned here. They include Cmdow, Create Hidden Process, Hidecon, and Hideexec.
Hide the Batch Console With a Visual Basic Script
Hiding the batch script console window using Visual Basic is quite similar to using an external command and works in basically the same way. Launch the VB script and supply the batch file as an argument, then the code runs the script while not showing any output. It can be done with a single line of code.
CreateObject(“Wscript.Shell”).Run “””” & WScript.Arguments(0) & “”””, 0, False
Create an empty text file, copy and paste the above line then save it as a .vbs file. Alternatively, download launchquiet.vbs which is a ready made script. To add it to a shortcut or a startup location etc, use the commands in the following way. Don’t forget to use quotes if your paths or filenames contain spaces.
Wscript [path to .vbs file] [path to .bat file]
If you would like to supply an argument for the batch file, the piece of VB script has to be altered slightly by changing the two sets of four double quotes to two sets of two.
CreateObject(“Wscript.Shell”).Run “” & WScript.Arguments(0) & “”, 0, False
Then supply the arguments along with the batch script path inside quotes:
Wscript [path to .vbs file] “[path to .bat file] [argument]”
Again, for convenience, you can download a ready made launchquiet_args.vbs script file.
On the next page, we’ll look at how to convert a batch script into an executable file, how to create a batch executable without any additional software and how to run a script from a scheduled task.
hi
seems Bat2ExeIEXP and Raymond.cc Silent Batch Launcher files is removed from your server
https://raymond.cc/wp-content/sun/Bat2ExeIEXP.zip
https://raymond.cc/wp-content/sun/Silent_Batch_Launcher-3996.zip
can you upload them again pls?
thanks :)
Thanks for the report, the links are fixed. :)
NirCMD and SilentCMD are the 2 easiest and least intrusive to do. I particularly like SilentCMD with Task Scheduler beacause SilentCMD will wait until it the CMD is finished before reporting the task as completed. NirCMD seems to launch the CMD script silently and immediately return control to Task Scheduler. So if there are other actions in the tasks that should wait until that CMD is completed, then they would run immediately.
But if you use NirCMD as an action within a task, then it will wait until the script runs before returning control. (at least I think so)
SilentCMD can also redirect the program console log to its own log. But there is no way to customize the log. whatever would normally be printed on the screen OR to the program’s own logs can get redirected to this log, which is interesting. But at least you can use it as a one-stop shop to
Scanning thru the article , I didn’t see
START /MIN “PATH AND FILE.BAT”
This will run minimized. In my opinion that is silently.
The console window is still opened while the script is running although you could stop it from staying open by adding Exit to the script.
Not really silent which is why it’s not on our list, but it might be enough for some people.
Hey SilentCMD looks best but it needs additional .NET Framework installation on some systems
Yes, the article does say it requires .NET 3.5 for Windows 10. Of course, now Windows 11 is out, that will require .NET 3.5 as well.
I used the VB Script approach using the sample code provided. Worked like a charm!
Thank you Raymond
That SilentCMD app is a gem. It solves a whole bunch of Windows issues beyond hiding the console, including the deprecation of batch file running in Windows Task Scheduler, the ability to write more detailed logs than written by either Windows Task Scheduler or the internal batch “echo” command. In just 14kb. Wow!
Hi!
CHP (Create Hidden Process) is also fine.
commandline.co.uk/chp/
Thanx for other alternatives!
I did test Create Hidden Process but didn’t include it in the article, can’t remember exactly why.
Hi Hal! Long time.
How was the mission in the end? Did they restore your brain at least?
“Daisy, Daisy, give me your answer, do”… I hope those weren’t your last words.
Here is another implementation: stackoverflow.com/a/56111754/70405
Thank you for nice article, after a research found nircmd is the easiest and best utility
Hi Jeremy,
Can I add the lines provided by you directly in my batch file after @echo off?
Thank you,
Kiran.
Another option: create a Windows shortcut and use this as the path:
cmd.exe /c echo CreateObject(“Wscript.Shell”).Run “notepad.exe”, 0, false > run_hidden.vbs & start /wait wscript run_hidden.vbs & del run_hidden.vbs
Thank you This helped me a lot.
“Run whether user is logged on or not will not work no matter what you do”
True!
You need to use that or it won’t hide the console window, if you use “run only when user is logged in”, a console window will appear, which is what we a trying to avoid.
What he meant was that choosing this option would cause the batch to not run. I am having this issue.
Thank you so much!!
You missed a tool that has been around for 16 years.
joeware.net/freetools/tools/quiet/index.htm
The article is not about listing every single tool around that can hide a console window.
Thanks a lot for “Run A Silent Batch Script Using A Scheduled Task”.
It saved me a 2 minutes popup every 10 minutes :)
Run whether user is logged on or not will not work no matter what you do