Vitim.us
Vitim.us

Reputation: 22138

There's any way to run vbscript directly to wscript or cscript command line

I want to run a vbs command from command line as I would in batch calling

cmd.exe /c "echo.Hello World! & pause"

Obviously this doesn't work

wscript /C MsgBox("Hello world")

I could print the vbs and then call the temporary file and then delete it

cmd.exe /c "echo. [VBSCODE] > temp.vbs & wscript temp.vbs & del temp.vbs"

but this is too messy, and I don't want the prompt poping up.

Upvotes: 10

Views: 11619

Answers (3)

tinyfiledialogs
tinyfiledialogs

Reputation: 1355

This works directly on the command line:

mshta vbscript:Execute("MsgBox(""Message"",64,""Title"")(window.close)")

also for several commands:

mshta vbscript:Execute("MsgBox ""Message"",64,""Title"":MsgBox ""Hello again!"",64,""Hello"":close")

Upvotes: 20

dbenham
dbenham

Reputation: 130839

VBScript requires a file for its source code. You want to specify stdin as the "file", but there is no mechanism to do that. So the answer is no - you cannot generate and run VBS code from the command line without using a temporary file.

Most people use a batch script to write temp VBS code, execute, and then delete the temp code, as PA has demonstrated.

I have discovered a mechanism to embed the VBS code within the batch file, without the need for a temporary file. But it is not very pretty. See Is it possible to embed and execute VBScript within a batch file without using a temporary file?

It is much cleaner to embed JScript within a batch file.

Upvotes: 2

PA.
PA.

Reputation: 29339

avoid typing over and over the same, just create a bat with the commands to run

sovb.bat

@echo off
echo %* >%temp%\temp.vbs
wscript %temp%\temp.vbs
del %temp%\temp.vbs

and then from the command line, invoke it

sovb MsgBox("Hello World")

Upvotes: 0

Related Questions