2013-02-10 24 views
1

我想提取程序中兩個特定點之間出現的控制檯輸出部分,並將其存儲到一個變量中。這將在多次循環中執行。沒有必要將輸出回顯到常規控制檯(如果這樣可以提高效率)。如何將控制檯輸出提取到兩點之間的變量中?

foreach (Procedure p in procedures) { 
    BeginCapturingConsoleOutput(); 

    p.Execute(); 

    string procedureOutput = EndCapturingConsoleOutput(); 
} 

回答

1

此頁MSDN上的代碼做我認爲你正在尋找的東西: http://msdn.microsoft.com/en-us/library/16f09842.aspx

基本上,它設置輸出流,你定義的東西(的情況下例如,一個文件),執行一些操作,並在最後將其設置回標準輸出流。

+0

太棒了!這很容易實現我需要的東西。我正在環顧'System.Diagnostics.Process'類,它似乎爲衍生進程提供了類似的功能,但不是當前進程。 'Console.SetOut'就像一個魅力:-) – 2013-02-11 00:08:43

+0

下面是一個未來的讀者可能會感興趣的例子:http://pastebin.com/s10fZ0XE – 2013-02-11 00:18:15