0

このC#アプリケーションを使用して、SAPがクエリを実行するために使用する開始日と終了日の範囲を選択します。1つの引数を渡すアプリケーションを作成しましたが、そのように機能しましたが、2つの引数を実行すると機能しません。誰か助けてもらえますか?

C#

        private void button1_Click(object sender, EventArgs e)
        {
            String startDate = dateTimePicker1.Value.ToString("MM/dd/yyyy");
            String finishDate = dateTimePicker2.Value.ToString("MM/dd/yyyy");
            Process processbefore = new Process();
            processbefore.StartInfo.FileName = "C:\\Program Files\\SAP\\FrontEnd\\SAPgui\\saplogon.exe";
            processbefore.Start();
            processbefore.WaitForExit(1000 * 5 * 1);
            Process process = new Process();
            process.StartInfo.FileName = "C:\\Script2.vbs";
            process.StartInfo.Arguments = startDate;
            process.StartInfo.Arguments = finishDate;
            process.StartInfo.ErrorDialog = true;
            process.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
            process.Start();
            process.WaitForExit(1000 * 60 * 10);    // wait up to 5 minutes.
        }
    }
}

Script2.vbs-VBScript(省略形)

startDate = WScript.Arguments.Item(0)
finishDate = WScript.Arguments.Item(1)

finishDate = WScript.Arguments.Item(1)の範囲外の添え字を取得します

その後の残りのコード。VBScriptに渡す別の引数を追加する方法を知る必要があります。同じ行をもう1つ追加すると、エラーが発生します。

4

1 に答える 1

0

それ以外の:

process.StartInfo.Arguments = startDate;
process.StartInfo.Arguments = finishDate;

あなたが欲しい:

process.StartInfo.Arguments = startDate + " " + finishDate;

これは、引数がWindowsではスペースで区切られており、process.StartInfo.Argumentsすべての引数を含む単一の文字列であるためです。

注:引数の1つにスペースが含まれている場合は、その周りに引用符を配置する必要があります。そうしないと、複数の引数として解釈されます。例えば:

process.StartInfo.Arguments = "\"" + startDate + "\" \"" + finishDate "\"";
于 2012-06-19T19:46:09.860 に答える