startinfo.arguments вопрос? - PullRequest
       7

startinfo.arguments вопрос?

1 голос
/ 26 июля 2011

У меня есть три пути, которые я хочу, чтобы 3 отдельных аргумента передавались в исполняемый файл.Я делаю startinfo.arguments, но как их разделить, чтобы исполняемый файл знал, что это три разных аргумента?

Ответы [ 3 ]

3 голосов
/ 26 июля 2011

Вы можете просто передать их в свойство аргумента с пробелами, разделяющими их, как в командной строке, заключив любые пробелы в двойные кавычки.

Обновление: -

В качестве примера включения пробелов в аргументы, чтобы скопировать 'foo bar baz.txt' в 'это test.txt': -

using (var process = new Process
       {
           StartInfo = new ProcessStartInfo
           { 
               FileName = "cmd.exe",
               Arguments = "/c copy \"foo bar baz.txt\" \"this is a test.txt\""
           } 
       })
{
    process.Start();
    process.WaitForExit();
}

Синтаксис неуклюж, но имеет преимущество в том, что он согласуется с тем, как вы это делаете в командной строке, как указано @Ed S.

1 голос
/ 26 июля 2011

Допустим, ваша программа называлась Test.exe и вы хотели передать ей 3 аргумента командной строки "аргумент1", "аргумент два" и "аргумент3"

Если бы вы запустили это из командной строки, вы бы сделали:

Text.exe argument1 "argument two" argument3

Таким образом, ваши startInfo.Arguments будут установлены в:

startInfo.Arguments = "argument1 \"argument two\" argument3";
1 голос
/ 26 июля 2011

Строка аргумента, которую вы передаете, не должна отличаться от той, которую вы передали бы, если бы вводили в командной строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...