C#如何获得其他批处理文件的输出?

时间:2008-10-11 14:29:40

标签: c# io

我必须使用其他应用程序(控制台)将一些参数传递给该程序,并在我的C#程序中获取该程序的输出。我不想看到控制台(对用户都是不可见的)。我怎么能这样做?

1 个答案:

答案 0 :(得分:16)

Process myProcess = new Process();
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("YOUPROGRAM_CONSOLE.exe" );
myProcessStartInfo.UseShellExecute = false;
myProcessStartInfo.RedirectStandardOutput = true;
myProcess.StartInfo = myProcessStartInfo;
myProcess.Start();

StreamReader myStreamReader = myProcess.StandardOutput;
string myString = myStreamReader.ReadLine();
Console.WriteLine(myString);
myProcess.Close();

来源:MSDN

编辑: 如果您需要获取错误消息,则需要使用异步操作。您可以使用异步读取操作来避免这些依赖关系及其死锁潜力。或者,您可以通过创建两个线程并在单独的线程上读取每个流的输出来避免死锁条件。