在命令行中传递参数数组

时间:2012-09-06 08:29:52

标签: c# .net winforms c#-4.0 .net-4.0

我看过这个关于Passing command line arguments in C#的问题。

但在我的情况下,我必须将参数数组传递给调用的.exe文件。

e.g。

var arr = new string[] {"Item title","New task","22","High Priority"}

是否可以将Process.Start()与exe路径一起用于数组

我有.exe路径

const string path = @"C:\Projects\Test\test.exe";

由于

3 个答案:

答案 0 :(得分:0)

请试试这个:

        var arr = new string[] {"Item title", "New task", "22", "High Priority"};
        const string path = @"C:\Projects\Test\test.exe";
        const string argsSeparator = " ";
        string args = string.Join(argsSeparator, arr);

        Process.Start(path, args);

答案 1 :(得分:-1)

无法将数组作为参数传递,您可以使用逗号分隔符传递一个字符串:

 ProcessStartInfo info = new ProcessStartInfo();
 info.Arguments = "Item title,New task,22,High Priority"

答案 2 :(得分:-1)

一种选择是将数组放在一个字符串中,以便该方法将其视为一个参数。在您的方法中,您可以解析该一个参数。类似的东西:

"Item title, New task, 22, High Priority"

您可以通过执行以下操作来使用现有阵列:

var arrAsOneString = string.Join(", ", arr);

在您的方法中,执行:

var values = argument.Split(',').Select(x => x.Trim());

我添加了修剪以消除空格。