我已经对这个问题做了很多研究,我发现的所有内容都是关于我不想要的信息的误导性网站。所以我希望这里的任何人能给我一个可靠的解释。
基本上,我有一个程序,我想在任务计划程序中使用它。但是无论我在框中给出什么参数来放置它们,它总是说索引位于数组边界之外。
我知道参数链接到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链接到第一个参数等等。
在任务计划程序中,我基本浏览到已发布的可执行文件:
当然,path
和mail
部分在运行程序时要长得多,但这只是一个例子。
我是否需要删除逗号?和/或在每个参数前添加-
?或者它是完全不同的东西?
提前致谢!
答案 0 :(得分:4)
通常命令行参数由单个空格字符分隔,而不是逗号。此外,如果你的任何参数包含空格,你需要用双引号包装参数:
"C:\My Documents\xxx" x@y.z 10
我不知道任务调度程序如何提供其参数,但您可以在使用它们之前记录参数,以确切了解传递给应用程序的内容。
答案 1 :(得分:1)
虽然我认为你已经知道了这一点,但是为了确定: 您需要通过空格分隔参数。此外,如果参数包含空格(例如路径),则将它们放在双引号中。
为什么不写一个简单的测试应用程序将完整的paramsarray转储到文本文件中。 然后你应该知道如何正确解释。