如何修改VBS脚本使其后台启动程序时支持传递参数
修改后的完整Launch.vbs代码
Set WshShell = CreateObject("WScript.Shell") ' 读取第一个参数作为目标程序路径,包裹引号避免路径含空格报错 cmd = """" & WScript.Arguments(0) & """" ' 遍历从第二个开始的所有参数,依次拼接到命令后 For i = 1 To WScript.Arguments.Count - 1 cmd = cmd & " " & """" & WScript.Arguments(i) & """" Next ' 后台执行拼接完成的命令 WshShell.Run cmd, 0, False
逻辑说明
你原来的脚本仅读取了第一个参数(要启动的程序路径)拼接进执行命令,后续传入的所有参数都没有被处理,所以目标程序无法接收。
修改后的脚本会自动识别所有传入VBS的参数,除第一个作为程序路径外,剩余全部参数都会原样拼接到启动命令中,每个参数单独用引号包裹,兼容含空格的参数、带特殊字符的参数场景。
调用示例
以下调用方式均可正常传参:
:: 传单个无空格参数 wscript.exe "Launch.vbs" "ProgramIWantToStartInBackground.exe" Parameter :: 传多个参数,包含带空格的路径参数 wscript.exe "Launch.vbs" "ProgramIWantToStartInBackground.exe" "Parameter With Space" /config "C:\Program Files\test\config.ini"
内容的提问来源于stack exchange,提问作者Mark Deven
相关产品推荐
相关产品推荐

