2

以下のスクリプトを使用して別のスクリプトを呼び出しています。問題は、WScript.Arguments によって取得した引数を、呼び出している 2 番目のスクリプトに渡す必要があることです。誰かがその方法を教えてください。

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

objShell.Run "TestScript.vbs"    

Set objShell = Nothing
4

3 に答える 3

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
于 2013-07-03T08:36:20.757 に答える
0

使用する:

objShell.Run "TestScript.vbs arg1 arg2"

引数の 1 つにスペースが含まれている場合は、おそらく次のように、これらを引用符で囲む必要があります。

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

または、アポストロフィを受け入れることもできます (私は最近これを試していません)。

于 2013-07-02T23:56:11.153 に答える