0

使用此 C# 应用程序选择开始和结束日期范围,然后 SAP 将使用该范围进行查询。我制作了一个传递一个参数的应用程序,它就像那样工作,但是在做两个参数时它不起作用。任何人都可以帮忙吗?

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。如果我只添加另一条同一行,我会收到错误消息。

4

1 回答 1

0

代替:

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

你要:

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

这是因为参数在 Windows 上是空格分隔的,并且process.StartInfo.Arguments是包含所有参数的单个字符串。

注意:如果其中一个参数中有空格,则需要在其周围加上引号,否则它将被解释为多个参数。例如:

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