将变量从vbscript传递到批处理文件

时间:2015-08-21 01:16:13

标签: windows batch-file vbscript

我对批量编程和vbscripting非常陌生

我想将vbscript中的变量传递给批处理文件。 这是我的vbscript代码:

Dim shell,a

a="Hello World"

set shell=createobject("wscript.shell")
shell.run "test.bat a"

以下是我的批处理文件:

@Echo off

echo %1

PAUSE

我想要回应的结果是" Hello World"而是" a"回声

2 个答案:

答案 0 :(得分:3)

您需要传递给shell.run的命令行才能包含变量a内容,而不只是字母“a”本身。

试试这个VBS:

Dim shell,a

a="Hello World"

set shell=createobject("wscript.shell")
shell.run "test.bat """ & a & """"

这将有效地使该行说出shell.run "test.bat ""Hello World"""。 在VB(所有风格 - 脚本,.Net,VB6等)中,你需要放两个双引号来转义字符串文字中的一个。

唯一的问题是双引号会传递给您的批处理文件。

答案 1 :(得分:1)

试试这个:

Dim shell,a

a="Hello World"

set shell=createobject("wscript.shell")
shell.run "test.bat " & """" & a & """"

您的a变量包含在文件名中。将它放在引号之外并连接字符串会以你想要的方式将它传递给shell命令。

编辑:忘了引号。 :(