-1

vb スクリプトからの引数を使用して perl スクリプトを呼び出す必要があります。引数にスペースが含まれている場合、機能していません。助けてください。ありがとう。

Set oShell = CreateObject("WScript.Shell")
sArgs = strArg1
sExec = "perl test.pl"
sCmd = sExec & " " & sArgs & " "
oShell.Run(sCmd)
4

1 に答える 1

0

引数を引用符で囲むと、シェルがコマンドをトークン化するのに役立ちます。

シェルで直接実行すると、次のようになります。

C:\> perl test.pl "C:/Path with spaces/foo.temp"

VBScript でこれを行う方法については、次の 2 つの手順で解決できます。string 内のリテラル引用符をエスケープし、Replace() を使用してその string をフォーマットします。

sCmd = "perl test.pl ""{0}"""
sCmd = Replace(sCmd, "{0}", sArgs)
oShell.Run(sCmd)

sArgsこれは、引数が 1 つだけ含まれていることを前提としています。複数の引数を渡す場合は、それぞれを個別に引用符で囲みます。

于 2013-08-22T20:57:24.447 に答える