我想从我的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”)并运行它,我期望的结果会回来。
有人看到我的错误吗?
答案 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 \"";