【问题标题】:C# Variables to VBScriptVBScript 的 C# 变量
【发布时间】:2012-06-21 21:55:18
【问题描述】:

使用此 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。如果我只添加同一行的另一行,则会出现错误。

【问题讨论】:

  • 我们真的需要查看所有代码吗?我怀疑你可以用六行代码重现这个问题。您列表中的哪一行代码失败,您收到什么错误消息?

标签: c# variables vbscript sap arguments


【解决方案1】:

代替:

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

你想要:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 2011-12-21
    相关资源
    最近更新 更多