如何在命令行中将双引号转义为.vbscript?

时间:2011-06-28 20:56:41

标签: windows command-line command-line-arguments

我有一个脚本。我想在其中发送带有双引号的行到该脚本,如下所示:Cscript myScript.vbs“测试”此行“”

但是行内的双引号使得行永远不会正确地到达脚本。我尝试使用克拉(^)或使用双倍双引号(“测试”“此行”“”)以不同的结果进行转义,但没有一个是我想要的结果(脚本正在测试“此行”)。

为了证明为什么我需要这样做,我正在尝试将SQL行发送到将编辑我的Orca表的脚本,并且需要在其中一个值中使用双引号来执行我想要执行的操作与Orca。

3 个答案:

答案 0 :(得分:3)

你可以试试这个:

这是vb脚本x.vbs:

Wscript.Echo Unescape(Wscript.Arguments.Item(0))

以下是运行它的输出:

D:\>cscript x.vbs "Testing %22this line%22"
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

Testing "this line"

如果你用%22替换所有“你将能够使用此方法传递双引号。

答案 1 :(得分:0)

这不可能。我已经尝试了所有的东西,唯一能让这项工作的方法是指定一些字符串来代表"在您的VBS中,用"替换指定字符串的命令行参数实例。我选择了一些不太可能出现问题的东西:!:我用来表示"。

的字符串

在我的代码中,我添加了以下内容:

strArgu0 = Wscript.Arguments(0)
strOldSTR = Replace(strArgu0,":!:","""")

答案 2 :(得分:-1)

我见过的例子在引用之前使用反斜杠来逃避它。一个常见的例子是将日志记录选项传递给安装程序(Windows安装程序包)

Setup.exe /v"/l*v \"c:\My Log Files\test.log\" /qn"