установка командной строки в кавычках - PullRequest
1 голос
/ 02 февраля 2012

Мне нужно запустить командную строку из моего приложения и задать для нее аргументы.

System.Diagnostics.Process.Start("CMD.exe", "\"C:\Program Files\My Program\program.exe\" \"C:\Program Files\My Program\Program2.exe\"");

Строка выше была бы хороша для меня, но проблема в кавычках. Чтобы иметь кавычки в cmd, мне нужно избегать их, но когда я избегаю их, я получаю управляющие символы \ в моей команде, поэтому это не работает. У кого-нибудь есть идея, как решить эту проблему?

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Ваш код должен выглядеть так:

Process.Start("CMD.exe",
              "\"C:\\Program Files\\My Program\\program.exe\" " +
              "\"C:\\Program Files\\My Program\\Program2.exe\"");

Обратите внимание на двойную обратную косую черту в пути.

Альтернативой может быть использование дословной строки (обратите внимание на знак @ перед строкой). В этом случае вам нужно экранировать кавычки как две кавычки:

Process.Start("CMD.exe",
              @"""C:\Program Files\My Program\program.exe"" " +
              @"""C:\Program Files\My Program\Program2.exe""");
1 голос
/ 02 февраля 2012
const string SystemDirectory = @"C:\Windows\System32";

С квотами:

const string SystemDirectory = @"""C:\Windows\System32""";
...