2017-10-04 181 views
1

我有一个调用命令提示符的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,就不能顺序工作。我无法弄清楚为什么我看不到为什么消息框会影响我的命令提示符。

感谢您的任何帮助。

+1

开始新一前,等待之前完成:加入 process.WaitForExit();介于.Start()和新的参数之间。 – farbiondriven

+0

在尝试运行第二个消息框之前,messagebox会让它等待。 – BugFinder

回答

1

您需要等待开始新的一个。所以需要在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

非常感谢!这正是我所错过的:) –

相关问题