Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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 http://answers.yahoo.com/question/index?qid=20071011212557AAofTy6)

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 : http://superuser.com/a/62646/301368

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:

#!/bin/bash
./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
1  
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. stackoverflow.com/questions/8055371/… –  JSanchez Feb 28 at 23:48

1 Answer 1

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 at 0:32

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.