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.
.
Convert a Batch Script Into an Executable File
Another way to run a quiet batch file is by turning the script into an executable file. Using the right batch file to executable converter will give the option to suppress the window. One issue is a converted batch script can be flagged by security software as malicious.
Bat To Exe Converter
Bat To Exe Converter by F2KO Software is an easy converter to use while still offering additional features for intermediate and advanced users. The downloaded Zip includes both installer and portable versions and several example batch files. Note we are not using the latest version of the tool as this older one is simpler to use and does everything needed.
Drop a batch file onto the window or browse for it manually, select the Invisible application radio button and click Compile. This will auto create an executable with the same name as the batch script. Use the “Add administrator manifest” option if your script has commands that require administrator privileges. The other options are more for advanced users and not essential.
Another feature is a number of built in script commands. You can add these into your script to make certain command line tasks, which are not built into Windows, easy to accomplish. File requesters, message/input boxes, reading clipboard data and getting file checksums are just a few. There are around 100 commands to use and you can edit your script from the built in editor which includes syntax highlighting.
Slimm Bat To Exe Converter
Using the Slimm batch to executable converter is just about as easy as you could wish to get, but if you want a little more power a couple of extra options are also available. It’s also a portable tool.
To quickly create an executable from a batch file that won’t pop up a console window, click the Windowless Express button, browse for the script and it will automatically create the executable file at the same location as the batch file. The Custom button offers the chance to use an integrated text editor where you can also add your own custom icon from the editor’s Tools > Options menu.
Download Slimm Bat To Exe Converter
Create An Executable Batch File Without Extra Software
It is possible to convert a batch script into an executable in Windows without using any third party software at all. This is achieved through the use of an old tool called IExpress that has been around since Windows 2000 and is still there in Windows 10. IExpress creates a self extracting archive that’s designed more for installation packages, but it works for a single batch file as well.
The IExpress Wizard can be used to manually guide you through creating a self extracting package although we have a much easier way of doing it here. Just download the Zip file below and extract the batch file. Then drop your own batch file onto it and in a few seconds, an executable file will be created by IExpress at the same location.
Do note that if your batch file creates output, such as a log file, you need to make sure to set proper paths or any files created will be deleted once the script terminates. While running, the extracted files are stored in %TEMP%. The script was originally created by a user called “npocmaka” on Github and then modified slightly for drag and drop by another user on Stackoverflow.
Create Your Own Executable File
This method is somewhat similar to turning a batch script into an executable, but you create the code and compile the program yourself. For that, a programming or scripting language is required. We have chosen AutoIt but you can use the similar AutoHotkey or something else if you have another favorite.
Here are four lines of AutoIt code to produce a quietly running batch file:
#RequireAdmin
#AutoIt3Wrapper_UseUpx=y
FileInstall(“MyBatchFile.bat”, @TempDir & “\MyBatchFile.bat”,1)
Run(@ComSpec & ” /c ” & @TempDir & “\MyBatchFile.bat”, “”, @SW_HIDE)
The code is simple to understand, line 1 is optional and asks for administrator privileges, line 2 is also optional and compresses the executable. Line 3 embeds MyBatchFile.bat in the executable and extracts it to the Windows Temp folder on launch. The final line runs the batch file as a console command with the hide attribute suppressing the window.
To simplify the process you can compile the executable with just the last line if you want to run a batch file silently that is stored in a permanent location on your computer.
Run(@ComSpec & ” /c ” & “C:\Scripts\MyBatchFile.bat”, “”, @SW_HIDE)
The above will silently execute MyBatchFile.bat from the C:\Scripts folder. To use AutoIt all you have to do is install it or use the portable version, create your code and press F7 to compile. Make sure the batch file to embed is placed in the same folder as the .au3 AutoIt script file.
Download AutoIt (Download the Zip for the portable version)
Run a Silent Batch Script Using a Scheduled Task
This last method is one that doesn’t need any third party tools, only the Windows Task Scheduler is used. All you have to do is point to the batch file and tick a few boxes. This is obviously best for scripts launching on startup, logon or at a specific date and time, although you can also run the task on demand.
1. Go to Control Panel > Administrative Tools > Task Scheduler, or type Task Scheduler into the Start or taskbar search box.
2. Click Create Basic Task and give the task a name, click Next and select when you would like to launch the task.
3. In the Action window leave “Start a program” selected and after clicking Next, browse for the batch script. Add a path to the “Start in” box if you wish to use a different working path for the batch file. Before clicking Finish to close the wizard, check the box to open the properties dialog.
4. In the Properties window select “Run whether user is logged on or not“, you will need to enter the account password when editing is done. If there’s no password on the account, also check the “Do not store password” box. This does have a drawback because the batch script will not be able to access file, folder or printer shares. If you don’t set these options a console window opens while running the script.
5. If the batch script needs administrator privileges, tick the “Run with highest privileges” box. Click OK when done.
Now you can test the task works by right clicking and selecting Run or waiting for it to run at the scheduled point or time. It should work and without popping up any type of console window.
Running The Scheduled Task On Demand
While the task can be run on the schedule you supplied when creating it, you can also execute it whenever you want. This has an extra bonus because you can run a batch file that requires administrator privileges at any time without having a UAC prompt appear (doesn’t work for standard user accounts).
Create a new shortcut on the desktop and in the location box enter the following:
Schtasks.exe /Run /TN “Task Name”
Replace Task Name with the specific name you gave the task in step two above.
Now you can run the batch file silently at any time and without any UAC prompts appearing. This method is actually pretty useful for running any type of program silently in the background and without a UAC prompt.
Tip: If you want to run the task on demand only and not with any triggers, go back into the Task Scheduler Properties window (step four above), click the Triggers tab, select the trigger in the list and delete it.
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