我正在尝试将一段代码作为命令行参数传递给在 WinXP 上运行的程序。我无法将整个代码片段作为一个参数传递。它被 SPACE 和 QUOTE 字符分割(如预期的那样)。引用整个内容并使用 QUOTE、SLASH 或 CARAT 转义 QUOTE 字符也失败了......
Const TheCode = "main(""Literal String Argument"", 123, true)"
Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.Run """c:\Folder with space\ArgTest.vbs"" """ & TheCode & """"
我运行以下 vbs 脚本来回显参数以测试收到的内容。
ArgTest.vbs:
Dim ArgumentIndex
For ArgumentIndex = 0 to Wscript.Arguments.Count - 1
Call Msgbox(Wscript.Arguments(ArgumentIndex), vbOKOnly+vbInformation, "Argument " & ArgumentIndex)
Next
编辑:原来是 VBS Echo 脚本指出了引号。使用 QUOTE 转义。