2011-02-18 35 views
0

目前我有一個命令,這樣做。首先,在按鈕點擊事件之後,我執行一個批處理文件,然後通過將日誌,結果和錯誤信息保存到文本文件中來創建一個新的文本文件。我想創建一個文本塊,以便該文本塊將在運行批處理文件的過程中顯示這些結果和錯誤。可能嗎?我需要CMD輸出和錯誤發佈在文本塊上運行時

我寫到一個文本文件當前代碼:

System.Diagnostics.Process runantc = new System.Diagnostics.Process(); 

runantc.StartInfo.FileName = "C:\\GUI\\batch.bat"; 

runantc.StartInfo.UseShellExecute = false; 
runantc.StartInfo.RedirectStandardOutput = true; 
runantc.StartInfo.RedirectStandardError = true; 
runantc.Start(); 

string procOutput = runantc.StandardOutput.ReadToEnd(); 
string procError = runantc.StandardError.ReadToEnd(); 


// create a writer and open the file 
TextWriter outputlog = new StreamWriter("C:\\GUI\\processoutput.txt"); 
outputlog.Write(procOutput); 
outputlog.Close(); 

// create a writer and open the file 
TextWriter outputerror = new StreamWriter("C:\\GUI\\error.txt"); 
outputerror.Write(procError); 
outputerror.Close(); 

編輯1: 我理解代碼:

string procOutput = runantc.StandardOutput.ReadToEnd(); 

結束,不會在運行過程中讀出從開始輸出所以我想我的問題是問我是否可以用一些東西代替它,以便我可以在運行時看到它

+0

它在做什麼與你期待它做什麼?請具體說明。 – 2011-02-18 03:18:57

回答

0

如果我明白你想做什麼除了將輸出寫入日誌文件之外,當流程實際運行時,您還希望將輸出/錯誤顯示爲文本塊,基本上允許您在流程執行時觀察流程的輸出。是對的嗎?我沒有親自做過這件事,但如果它是你想要做的,那麼你應該看看異步地聽輸出/錯誤,並設置一個事件處理程序,當它寫輸出或錯誤時,它會調用它。請參閱documentation on BeginErrorReadline at MSDN以及documentation on ErrorDataReceived存在用於輸出的類似事件處理程序。

相關問題