2017-10-04 188 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

非常感謝!這正是我所錯過的:) –

相關問題