以下是您可以运行的一些实际代码。执行此操作时,您会注意到5个控制台窗口会快速弹出并消失。
如何在不弹出这些窗口的情况下重定向stdout / err?我尝试了一些事情,到目前为止失败了。对于我的实际使用,我需要争论和重定向标准输入,但这不应该影响解决方案。
[STAThread]
static void Main()
{
for(int i=0;i<5;i++)
{
var process = new System.Diagnostics.Process();
process.StartInfo.FileName = @"C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe";
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; //doesnt seem to have an effect
process.Start();
process.WaitForExit();
var resO = process.StandardOutput.ReadToEnd();
var resE = process.StandardError.ReadToEnd();
}
}