0
我需要捕獲三個進程的輸出並將其作爲StreamReader
傳遞。這在C#中可能嗎?將多個進程的輸出連接到StreamReader
背景:我需要三個不同參數的另一個文件的輸出,但我希望將我的代碼中後面處理的「完整」輸出(全部三個)一起對待。
我應該只是調用過程三次並在循環中處理輸出?還是有更高效的方法?
目前,我正在做這樣的
if (String.IsNullOrEmpty(file))
{
Process dsget;
dsget = Process.Start("dsget", "group \"CN=COUNTRY_DE,DC=cms,DC=local\" -members");
dsget.StartInfo.UseShellExecute = false;
dsget.StartInfo.RedirectStandardOutput = true;
dsget.Start();
reader = dsget.StandardOutput;
}
else
{
reader = new StreamReader(file);
}
while ((line = reader.ReadLine()) != null)
{
if (!line.Contains("CN"))
continue;
string username = line.Replace("\"", "").Split(',')[0].Split('=')[1];
countryUsers.Add(username.ToUpperInvariant());
}
但我需要兩個COUNTRY_XX
-groups從 「DSGET」。
@ ApoY2K,這取決於實際的可執行文件 - 大多數命令行程序完成他們的工作,然後退出。所以你沒有退出。當過程完成時,'Process'類給出事件。它也提供了「殺死」這個過程的方法。在你的用例中,你可能會發現'WaitForExit'方法有用。 – VinayC