Command line 那里';这是将vbscript直接运行到wscript或cscript命令行的任何方法

Command line 那里';这是将vbscript直接运行到wscript或cscript命令行的任何方法,command-line,batch-file,vbscript,wsh,Command Line,Batch File,Vbscript,Wsh,我想从命令行运行vbs命令,就像在批处理调用中一样 cmd.exe /c "echo.Hello World! & pause" 显然这不起作用 wscript /C MsgBox("Hello world") 我可以打印vbs,然后调用临时文件,然后删除它 cmd.exe /c "echo. [VBSCODE] > temp.vbs & wscript temp.vbs & del temp.vbs" 但是这太乱了,我不想弹出提示。避免重复输入,只需使用要运

我想从命令行运行vbs命令,就像在批处理调用中一样

cmd.exe /c "echo.Hello World! & pause"
显然这不起作用

wscript /C MsgBox("Hello world")
我可以打印vbs,然后调用临时文件,然后删除它

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

但是这太乱了,我不想弹出提示。

避免重复输入,只需使用要运行的命令创建一个bat即可

sovb.bat

@echo off
echo %* >%temp%\temp.vbs
wscript %temp%\temp.vbs
del %temp%\temp.vbs
然后从命令行调用它

sovb MsgBox("Hello World")

VBScript的源代码需要一个文件。您希望将stdin指定为“文件”,但没有实现这一点的机制。因此答案是否定的-如果不使用临时文件,就无法从命令行生成和运行VBS代码

大多数人使用批处理脚本来编写临时VBS代码,执行,然后删除临时代码,如PA所示

我发现了一种机制,可以在批处理文件中嵌入VBS代码,而不需要临时文件。但是它不是很漂亮。看


洗衣服要干净得多

这直接在命令行上工作:

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

是的,的确如此!至少在Win7 x64上是这样。有没有办法使用w/cscript?