Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to start (launch) three programs in windows and all of them in Background i.e. No windows.

I found two ways (both using vb script to hide a bat)

Set WshShell = WScript.CreateObject("WScript.Shell") obj = WshShell.Run("H:\test.bat", 0) set WshShell = Nothing

And another one here on SU:

Save this one line of text as file invisible.vbs:

CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False

To run any program or batch file invisibly, use it like this:

wscript.exe "C:\Wherever\invisible.vbs" "C:\Some Other Place\MyBatchFile.bat"

To also be able to pass-on/relay a list of arguments use only two double quotes

CreateObject("Wscript.Shell").Run "" & WScript.Arguments(0) & "", 0, False

Example: Invisible.vbs "Kill.vbs ME.exe" Source :

What I want to do is to open multiple programs and all of them in background, but when I use this I have to start each one of them separately.

If I were in linux it would be easy:

./program1 -args &
./program2 -args &
./program3 -args &

How to achieve this in windows ? (I am using the 8.1) but I'd guess it might be general enough for other versions.

(I Accept any solutions VBS / C / bat / whatever else works)

share|improve this question
If you use the & operator from the command line (or a batch file), followed by another command (and another one if you prefer) the program won't wait for execution to finish, but instead continue to the next command. So, you could run the VBScript with your commands, and chain them together this way.… – JSanchez Feb 28 '14 at 23:48
up vote 2 down vote accepted

Just use the Wscript.Shell.Run method many times and make sure you don't wait on return (set 3rd arge to false).

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "program1.exe", 0, False
WshShell.Run "program2.exe", 0, False
WshShell.Run "program3.exe", 0, False
share|improve this answer
How do I pass the args for each program ? WshShell.Run "program2.exe -args", 0, False ? – Kyllopardiun Mar 1 '14 at 0:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .