8

我想像批量调用一样从命令行运行 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"

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

4

3 回答 3

17

这直接在命令行上工作:

mshta vbscript:Execute("MsgBox(""Message"",64,""Title"")(window.close)")
于 2015-01-26T02:03:31.033 回答
3

VBScript 的源代码需要一个文件。您想将标准输入指定为“文件”,但没有机制可以做到这一点。所以答案是否定的——你不能在不使用临时文件的情况下从命令行生成和运行 VBS 代码。

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

我发现了一种将 VBS 代码嵌入批处理文件的机制,无需临时文件。但它不是很漂亮。请参阅是否可以在不使用临时文件的情况下在批处理文件中嵌入和执行 VBScript?

将 JScript 嵌入到批处理文件中要干净得多。

于 2012-10-29T13:13:22.443 回答
0

避免一遍又一遍地输入相同的内容,只需使用要运行的命令创建一个 bat

sovb.bat

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

然后从命令行调用它

sovb MsgBox("Hello World")
于 2012-10-29T09:16:56.637 回答