08-04-2021



Since a batch file is fundamentally just a text file, one can be created in any sort of simple text editor, and the suffix can later be changed to.bat or.cmd.Most people find it easiest to simply edit one from the command line, either straight in DOS or in a shell window launched from within Windows®. I've noticed a couple things wrong with the code you programmed, so I've made a better version for you! Original Code: @echo off title File hider:start cls Echo Do You Want to Hide or Unhide a Folder? Set/p cho=Choice: if%cho% equ Hide goto a if%cho% equ hide goto a if%cho% equ Unhide goto b if%cho% equ unhide goto b if%cho% neq Hide goto c:c cls echo That Is An Invalid.

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).

Download Hidden Start

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.

Download SilentCMD

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:UsersRaymondccMyBatchFile.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.

Download NirCMD

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 madelaunchquiet_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.

12Next › View All

You might also like:

7 Ways to Measure Time Taken to Complete a Batch File or Command Line Execution6 Ways to Trigger UAC Elevation from Command Line6 Ways To Batch Create Multiple Folders at Once8 Ways To Remove Duplicate Lines in Text Files2 Ways to Convert REG to EXE, BAT, VBS and AU3 to Bypass Registry Editing Restriction

Novabin4 months ago

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!

Reply

Hi!
CHP (Create Hidden Process) is also fine.
commandline.co.uk/chp/

Thanx for other alternatives!

Reply
HAL9000 Author6 months ago

I did test Create Hidden Process but didn’t include it in the article, can’t remember exactly why.

Reply

Here is another implementation: stackoverflow.com/a/56111754/70405

Reply
Yasser2 years ago

Thank you for nice article, after a research found nircmd is the easiest and best utility

SetbatchfilesReply

Hi Jeremy,

Can I add the lines provided by you directly in my batch file after @echo off?

Thank you,
Kiran.

Reply
Jeremy2 years ago

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

Reply

Thank you This helped me a lot.

Reply
Myself2 years ago

“Run whether user is logged on or not will not work no matter what you do”
True!

Reply

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.

Reply
Jeerapong Putthanbut2 years ago

Thank you so much!!

Reply

You missed a tool that has been around for 16 years.
joeware.net/freetools/tools/quiet/index.htm

Set Batch Files Extension

Reply

Setup Batch File

HAL9000 Author2 years ago

The article is not about listing every single tool around that can hide a console window.

Reply

Thanks a lot for “Run A Silent Batch Script Using A Scheduled Task”.
It saved me a 2 minutes popup every 10 minutes :)

Setbatchlines 1

Reply
Nasser3 years ago

Run whether user is logged on or not will not work no matter what you do

Setbatchlines

Reply

Leave a Reply