2014-09-16 4 views
2

Я хочу запустить команду CMD из моей программы C#, но я не нахожу ошибку, которую я делаю. Вот создания глобальной переменные:запустите команду cmd в C#

string flasherpath = "C:\ti\MSP430Flasher_1.3.1\MSP430Flasher.exe"; 
string chip = "-n MSP430G2553"; 
string hexpath = " -w \"C:\ti\MSP430Flasher_1.3.1\LED_Controle.txt\""; 

это код:

private bool programm() 
{ 
    for (int i = 0; i < 5; i++) 
    { 
     if (check[i] == false) 
     { 
      MessageBox.Show("Please choose working Settings."); 
      return false; 
     } 
    } 
    MessageBox.Show("All Right start Programming in the CMD Window."); 
    string command = "/C "; 
    command += "\"" + flasherpath + "\" "+chip+" "+hexpath+" -v -g -z [VCC] & pause"; 
    Process.Start("cmd", command);   
    return true; 
} 

Но каждый раз, когда я запускаю код только это выглядит:

«Die Синтаксис für ден Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch. Drücken Sie eine beliebige Taste. . "

Google Translate:

синтаксис для имени файла, имени папки или синтаксис метки тома неверно. Нажимайте любую кнопку

Я не понимаю эту ошибку, потому что, если я скопирую команду (без «/ C») в нормальном CMD-окне и запустив ее, результат, который я ожидаю, вернется.

Некоторые видят мою ошибку?

+0

Что '/ C' означает? Вы определили его как аргумент в своем основном методе? –

+0

'hexpath' имеет несколько экранированных символов, которые не выглядят так, будто они должны быть экранированы. Возможно, вам захочется добавить некоторые обратные черты на этом пути. –

+1

/C Выполняет команду, указанную строкой, а затем завершает работу. –

ответ

4

Вам нужно бежать ваши строки:

Маска ваши обратные косые "\" либо как "\\" с ведущим обратной косой черты или установить @ перед строкой: string somestring = @"here is some gibberish with a \ in it";, так же, как вы делаете с ". Вы можете использовать @ для flasherpath. Но потому, что вам нужно, чтобы избежать ", а в hexpath, здесь вам придется работать с руководством \

string flasherpath = @"C:\ti\MSP430Flasher_1.3.1\MSP430Flasher.exe"; 
string chip = "-n MSP430G2553"; 
string hexpath = " -w \"C:\\ti\\MSP430Flasher_1.3.1\\LED_Controle.txt\""; 
+0

спасибо, что я забыл «@», теперь он работает –

0

попробуйте следующее:

string command = "/C \""; 
command += "\"" + flasherpath + "\" "+chip+" "+hexpath+" -v -g -z [VCC] & pause \""; 
Смежные вопросы