Передача массива аргументов в командной строке
Я должен был посмотреть этот вопрос о передача аргументов командной строки в 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"