There's any way to run vbscript directly to ws

2019-04-08 18:41发布

问题:

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.

回答1:

this works directly on the command line:

mshta vbscript:Execute("MsgBox(""amessage"",64,""atitle"")(window.close)")



回答2:

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.



回答3:

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