2016-10-22 7 views
3

Я пытаюсь создать строку для передачи в cmd, чтобы создать и пометить файл P4V. Проблема в том, когда я передаю строку в cmd escape \ рассматривается как часть пути к файлу и не приводит к тому, что файл не найден. Есть ли способ передать «без»?Передача "в cmd с escape p4v не выделяет in C#

Вот код, я использую его генерирует строку в ЦМД как

 
p4 tag -l labelname \"c:\folder\filename\" 

P4 нуждается в кавычки вне строки.

Нужно:

 
p4 tag -l labelname "c:\folder\filename" 
   string tempString = @" """; 
      tempString = tempString + stringToTest; 
      stringToTest = tempString + @" """; 

      System.Diagnostics.ProcessStartInfo proc = new System.Diagnostics.ProcessStartInfo(); 
      proc.FileName = @"c:\windows\system32\cmd.exe"; 
      proc.Arguments = @"/k p4 tag -l " + newLabel + " " + stringToTest; 
      System.Diagnostics.Process.Start(proc);}enter code here 

Любая помощь приветствуется.

Здесь представлена ​​фактическая строка, передаваемая процессу (proc.Arguments). У меня нет Perforce на этой машине, поэтому я не могу показать, что находится в cmd.exe.

"/ к p4 тег -l Метка_строки \" C: \ папка \ имя \ ""

+1

вывода строки на консоль , отладочный вывод или файл, а затем скопируйте реальный результат в свой вопрос. Не показывайте нам фальшивый или перепечатанный вывод. И поместите строку в предварительно отформатированные теги –

ответ

2

Я считаю, это гораздо яснее, когда вы составляете строки, используя String.Format

proc.Arguments = string.Format("/k p4 tag -l {0} \"{1}\"", 
           "labelName", 
           @"c:\folder\filename"); 
+0

Спасибо, что помогли. – coolercargo

 Смежные вопросы

  • Нет связанных вопросов^_^