консольные приложения c #, передающие аргументы - PullRequest
0 голосов
/ 14 ноября 2011

Я получил это далеко:

ProcessStartInfo procInfo = new ProcessStartInfo(@"C:\a\a.exe");
procInfo.CreateNoWindow = true;
procInfo.Arguments = "01";
procInfo.Arguments = user_number;
procInfo.Arguments = email;
Process.Start(procInfo);

Но он передает только один аргумент (последний перезаписывает), как мне передать более одного аргумента, аргументы на консоли - это массив, это должно означать, что я могу передать более одного аргумента?

Ответы [ 4 ]

6 голосов
/ 14 ноября 2011

Вы хотите передать одну строку разделенных пробелами аргументов:

procInfo.Arguments = "01 " + user_number + " " + email;

То же самое, используя формат:

procInfo.Arguments = string.Format("{0} {1} {2}", "01", user_number, email);
1 голос
/ 14 ноября 2011

Все правы, просто нуждаясь в объединении. Просто стилистическая вещь, но вы можете использовать String.Join, чтобы сделать передачу аргументов более элегантной:

        string[] argv = {"01", user_email, email};
        ProcessStartInfo procInfo = new ProcessStartInfo(@"C:\a\a.exe");
        procInfo.CreateNoWindow = true;
        procInfo.Arguments = String.Join(" ", argv);
        Process.Start(procInfo);
1 голос
/ 14 ноября 2011

попробуйте это ..

procInfo.Arguments = "01 " + user_number + " " + email; 
0 голосов
/ 14 ноября 2011

Объединить ваши аргументы в одну строку, разделенную пробелом?Или вы можете использовать какой-то идентификатор перед каждым аргументом и заставить приложение .exe анализировать строку.

...