Visual Studio 2015命令提示问题
问题描述:
我有一个调用命令提示符的Visual Studio 2015程序。如何将2行写入命令提示符?这是我现在的代码:Visual Studio 2015命令提示问题
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C copy " + calibrT1 + "_CDF.hex\"" + calibrT1 + "_ECC_CDF.hex\"";
process.StartInfo = startInfo;
process.Start();
startInfo.Arguments = "/C c:\\ti\\hercules\\nowECC\\2.21.00\\nowECC -f035 -r4 -i "+ calibrT1 + "_ECC_CDF.hex\" -a ";
//MessageBox.Show("Tester");
process.StartInfo = startInfo;
process.Start();
作为一个有趣的笔记。此当前的代码不起作用。但是,如果MessageBox.Show(“测试器”)未被注释掉,它确实有效。因此,我可以确定我的代码行是正确的,并按我的意愿工作,但是,如果没有MessageBox,就不能顺序工作。我无法弄清楚为什么我看不到为什么消息框会影响我的命令提示符。
感谢您的任何帮助。
答
您需要等待开始新的一个。所以需要在WaitForExit之前(这是MessageBox所做的工作)。
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C copy " + calibrT1 + "_CDF.hex\"" + calibrT1 + "_ECC_CDF.hex\"";
process.StartInfo = startInfo;
process.Start();
process.WaitForExit(); // Wait First
startInfo.Arguments = "/C c:\\ti\\hercules\\nowECC\\2.21.00\\nowECC -f035 -r4 -i "+ calibrT1 + "_ECC_CDF.hex\" -a ";
process.StartInfo = startInfo;
process.Start();
+1
非常感谢!这正是我所错过的:) –
开始新一前,等待之前完成:加入 process.WaitForExit();介于.Start()和新的参数之间。 – farbiondriven
在尝试运行第二个消息框之前,messagebox会让它等待。 – BugFinder