我正在尝试将一段代码作为命令行参数传递给在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脚本,可以解决QUOTES问题。使用QUOTE来逃避。
答案 0 :(得分:0)
Windows中没有标准用于转义引号。完全由应用程序开发人员自行决定如何转义引号。如果您没有为您的应用提供解释如何操作的文档,那么您必须自己发现它(假设该应用甚至支持转义报价)
听起来你试过反斜杠:
Const TheCode = "main(\""Literal String Argument\"", 123, true)"
你还说你试过了插话符号:
Const TheCode = "main(^""Literal String Argument^"", 123, true)"
您是否尝试过加倍报价?
Const TheCode = "main(""""Literal String Argument"""", 123, true)"