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.
this works directly on the command line:
mshta vbscript:Execute("MsgBox(""amessage"",64,""atitle"")(window.close)")
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.
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")