1

私はこのようなJavaからVBSを呼び出しています

public class CallVBS {
    public static void main(String[] args) {

        try {
            Runtime.getRuntime().exec("wscript C:\\openURL.vbs");
        } catch (IOException e) {

            System.exit(0);
        }
    }
}

私のopenURL.vbsに次のようなメソッドが含まれている場合

Sub Test(Name,Age,Sex)

Java からの引数を使用して、VBS に存在する上記のメソッドを呼び出すにはどうすればよいですか

4

3 に答える 3

2

修正することでできることがいくつかあると思うので、AlexRにいくつかの変更を加えるだけです。

たとえば、MyVBScript.vbs という VBS ファイルがあるとします。

MyVBScript.vbs の内容は次のようになります。

name = WScript.Arguments.Item(0)
age = WScript.Arguments.Item(1)
sex = WScript.Arguments.Item(2)

Call Test(name, age, sex)

コレクションのインデックスは、最初の出現として 0 から始まることに注意してください。

この VBS ファイルを呼び出す Java コードでは、次のようになります。

Runtime.getRuntime().exec("wscript C:\\MyVBScript.vbs " + name + " " + age + " " + sex

元の回答については AlexR に感謝しますが、少し明確にする必要があると感じました。これが人々に役立つことを願っています。Quick Test Professional を起動する方法として、Java テスト ハーネスで個人的に使用しています。

于 2013-05-10T12:55:08.353 に答える
0

可能性は次のgetURL.vbsようになります。

Option Explicit

WScript.Echo "openURL.vbs"

Dim a0 : a0 = "Def. A. Ult"
If 1 <= WScript.Arguments.Count Then a0 = WScript.Arguments(0)
Dim a1 : a1 = "47.11"
If 2 <= WScript.Arguments.Count Then a1 = WScript.Arguments(1)
Dim a2 : a2 = "neuter"
If 3 <= WScript.Arguments.Count Then a2 = WScript.Arguments(2)

Test a0, a1, a2

Sub Test(name, age, sex)
  WScript.Echo """" & Join(Array(name, age, sex), """, """) & """"
End Sub

VBScript コードのトップ レベル/'メイン'/即時実行/サブ/関数部分のコマンド ライン経由で渡された引数を調べます。

スペースを含む引用符/引数で発生する可能性のある問題を回避するには、次の .exec 呼び出しを使用します。

String[] parms = {"wscript", "openURL.vbs", "Anna B. Carlson", "12", "fale"};
Runtime.getRuntime().exec(parms);
于 2013-02-05T17:08:00.580 に答える
0

あなたの質問はほとんど Java ではなく、VBS に関するものです。VBS でコマンド ライン引数を読み取る方法について説明しているこのディスカッションを見てください。通常、組み込みオブジェクトを使用する必要がありますWscript.Arguments。スクリプトの「メイン」部分の引数を解析し、サブルーチンを呼び出しますTest

Set name =  Wscript.Arguments(1)
Set age =  Wscript.Arguments(2)
Set sex =  Wscript.Arguments(3)
Call Test(name, age, sex)

これで、次のように Java からスクリプトを呼び出すことができます。

Runtime.getRuntime().exec("wscript C:\\openURL.vbs " + name + " " + age + " " + sex);
于 2013-02-05T16:19:25.763 に答える