在c#中运行cmd命令

时间:2014-09-16 06:12:12

标签: c# cmd

我想从我的c#programm运行CMD命令,但我没有发现我犯的错误。 以下是全局变量:

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;
}

但是每次我运行代码时都会出现:

  

“DieSyntaxfürdenDateinamen,Verzeichnisnamen oder die   Datenträgerbezeichnung是falsch。 DrückenSieeine beliebige Taste。   。 。“

Google翻译:

  

文件名,目录名或卷标语法的语法   是不正确的。按任意按钮

我不明白这个错误,因为如果我在普通的cmd窗口中复制命令(没有“/ C”)并运行它,我期望的结果会回来。

有人看到我的错误吗?

2 个答案:

答案 0 :(得分:4)

你需要逃避你的字符串:

将反斜杠"\"屏蔽为带有反斜杠的"\\"或在字符串前设置@string somestring = @"here is some gibberish with a \ in it";,就像使用"一样。您可以使用@ for 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\"";

答案 1 :(得分:0)

尝试以下方法:

string command = "/C \"";
command += "\"" + flasherpath + "\" "+chip+" "+hexpath+" -v -g -z [VCC] & pause \"";