从另一个传递参数的vbscript文件调用vbscript

时间:2013-07-02 23:53:28

标签: vbscript

我使用下面的脚本调用另一个脚本。问题是我必须将我通过WScript.Arguments检索的参数传递给我正在调用的第二个脚本。有人请告诉我该怎么做。< / p>

Dim objShell
Set objShell = Wscript.CreateObject("WScript.Shell")

objShell.Run "TestScript.vbs"    

Set objShell = Nothing

3 个答案:

答案 0 :(得分:5)

您需要通过正确引用参数来构建参数列表。您还需要区分命名和未命名的参数。至少,所有带空格的参数必须放在双引号之间。但是,简单地引用所有参数并没有什么坏处,所以你可以这样做:

Function qq(str)
  qq = Chr(34) & str & Chr(34)
End Function

arglist = ""
With WScript.Arguments
  For Each arg In .Named
    arglist = arglist & " /" & arg & ":" & qq(.Named(arg))
  Next
  For Each arg In .Unnamed
    arglist = arglist & " " & qq(arg)
  Next
End With

CreateObject("WScript.Shell").Run "TestScript.vbs " & Trim(arglist), 0, True

答案 1 :(得分:0)

使用:

objShell.Run "TestScript.vbs arg1 arg2"

如果其中一个参数包含空格,那么您需要将它们嵌入引号中,可能是这样的:

objShell.Run "TestScript.vbs arg1 arg2 ""this is three"""

或者它可能接受撇号(我最近没有尝试过这个)。

答案 2 :(得分:0)

我发现答案有点令人困惑,所以这是我的,在我看来它更简单。另一个答案是错的,只是不同(略)。

在test.vbs文件中:

Set shell = CreateObject("WScript.Shell")
shell.CurrentDirectory = "C:\some\path\"
x = "testing"
shell.Run "test1.vbs " & x 
<{1>}文件中的

C:\some\path\test1.vbs

从test.vbs文件生成消息框,传递给test1.vbs文件:

x = WScript.Arguments.Item(0) 
msgbox x