Передача массива аргументов в командной строке

Я должен был посмотреть этот вопрос о передача аргументов командной строки в C#.

но в моем случае я должен передать массив параметров вызову .файл EXE.

например

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

можно использовать Process.Start() С exe-путем вместе с массивом

у меня есть .exe пути

const string path = @"C:ProjectsTesttest.exe";

спасибо

3 ответов


пожалуйста, попробуйте это:

        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);

один из вариантов-поместить массив в одну строку, чтобы он рассматривался как один аргумент методом. В вашем методе вы можете проанализировать этот аргумент. Что-то вроде:

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

вы можете использовать существующий массив, выполнив:

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

внутри вашего метода сделайте:

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

я добавил обрезку, чтобы покончить с пробелами.


невозможно передать массив в качестве аргумента, вы можете передать строку с разделителем запятой:

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