我对批量编程和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"回声
答案 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命令。