Sunday, July 27, 2014

command line - Launch multiple programs in background on windows 8.1


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 : https://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)


Answer



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

No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...