如何在不写入磁盘的情况下执行VBS脚本?(支持Python/BAT)
无需保存到磁盘执行VBS脚本的实现方案
Python 实现方式
利用subprocess模块调用cscript.exe,通过标准输入(stdin)传递VBS脚本内容,无需写入磁盘:
import subprocess # 编写要执行的VBS逻辑 vbs_content = """ MsgBox "执行成功!这是内存中的VBS脚本", vbInformation WScript.Echo "控制台输出内容" """ # 调用cscript读取stdin中的脚本执行 subprocess.run( ["cscript.exe", "//nologo", "-"], input=vbs_content.encode("utf-8"), check=True )
说明:cscript.exe的-参数表示从标准输入读取脚本内容,//nologo用于关闭启动时的版权信息输出。
批处理(BAT)实现方式
通过管道将VBS内容直接传递给cscript.exe,同样无需保存文件:
单行VBS脚本
@echo off set "vbs_code=MsgBox ""单行VBS执行成功"" , vbInformation" echo %vbs_code% | cscript.exe //nologo -
多行VBS脚本
@echo off ( echo MsgBox "多行VBS执行成功", vbInformation echo WScript.Echo "这是多行脚本的控制台输出" echo Dim num : num = 123 : WScript.Echo "变量值:" ^& num ) | cscript.exe //nologo -
说明:多行脚本用括号包裹多个echo命令,通过管道传递给cscript;BAT中双引号需用两个双引号转义,特殊字符如&需加^转义。
内容的提问来源于stack exchange,提问作者violex
相关产品推荐
相关产品推荐

