控制台应用程序Args到任务计划程序参数(CLOSED)

时间:2013-10-01 11:33:16

标签: c# arguments scheduled-tasks

我已经对这个问题做了很多研究,我发现的所有内容都是关于我不想要的信息的误导性网站。所以我希望这里的任何人能给我一个可靠的解释。

基本上,我有一个程序,我想在任务计划程序中使用它。但是无论我在框中给出什么参数来放置它们,它总是说索引位于数组边界之外。

我知道参数链接到args?那么有人能告诉我我的代码有什么问题吗?

public static void Main(string[] args)
{
   string paramList = string.Join("", args);
   string[] parameter = paramList.Split(',');

   string ScanPath = parameter[0]; //Which directory to scan
   string MailToAddress = parameter[1]; //Which e-mail to send the log to
   string ScanHours = parameter[2]; //How many hours to scan
}

我在codeproject上找到了这个地方。我假设第一个arg链接到第一个参数等等。

在任务计划程序中,我基本浏览到已发布的可执行文件: enter image description here

当然,pathmail部分在运行程序时要长得多,但这只是一个例子。

我是否需要删除逗号?和/或在每个参数前添加-?或者它是完全不同的东西?

提前致谢!

2 个答案:

答案 0 :(得分:4)

通常命令行参数由单个空格字符分隔,而不是逗号。此外,如果你的任何参数包含空格,你需要用双引号包装参数:

"C:\My Documents\xxx" x@y.z 10

我不知道任务调度程序如何提供其参数,但您可以在使用它们之前记录参数,以确切了解传递给应用程序的内容。

答案 1 :(得分:1)

虽然我认为你已经知道了这一点,但是为了确定: 您需要通过空格分隔参数。此外,如果参数包含空格(例如路径),则将它们放在双引号中。

为什么不写一个简单的测试应用程序将完整的paramsarray转储到文本文件中。 然后你应该知道如何正确解释。