如何将双引号参数传递给vbscript?

时间:2019-12-06 20:47:09

标签: vbscript

我是vbScript的新手。我有一个脚本要调用,其中包含双引号的参数。以下是电话 .vbs“ a” 2,其中变量a为JO“ N

我的VbScript:

If WScript.Arguments.Count > 0 Then     
MsgBox "NAME:" + WScript.Arguments.Item(0) 
MsgBox "NAME:" + WScript.Arguments.Item(1)
Else    
MsgBox "Please pass a parameter to this script" 
End if

*请注意,这在a = JON时有效,但在a = JO“ N。我尝试放置转义字符”时不起作用(示例:“ WScript.Arguments.Item(0)”),但不起作用。

2 个答案:

答案 0 :(得分:1)

你不能。

至少,由于WScript参数解析器处理并删除了Arguments集合中值的所有引号,因此您不能为此任务使用默认参数处理。

  

注释:而且,如果您在调用脚本时正在运行的最终命令(您未包括进行调用的方式/位置)是否存在问题,我们将不存在任何问题因为附加引号会干扰参数引号规则。

您需要使用一些解决方法来获取双引号以到达脚本。一些方法可能是:

  • 在调用脚本之前替换引号和任何其他有问题的字符(使用某种转义序列),并还原脚本中的过程。

  • 将要传递的值保存到环境变量中(如何使其取决于脚本的调用方式),然后从脚本中检索值(例如here)。 / p>

  • 使用WMI检索用于启动脚本的完整命令行,包括所有引号(例如here)并编写自己的参数解析器例程。

    < / li>

从我的角度来看,我将使用第二个选项。

答案 1 :(得分:0)

这将起作用:Chr(34) & Wscript.Arguments.Item(0) & Chr(34)。这里的Chr(34)函数使用其ASCII码34返回双引号。

相关问题