我正在执行一个C#程序,即来自另一个C#程序的.exe。但.exe在其程序中有一些Console.WriteLine()。我想把标准输出放到我的C#程序中。
例如,
考虑一个C#可执行文件,即1.exe,还有另一个Program 2.cs。
我是从2.cs 1.exe打来的。现在控制台从1. exe显示一些输出。但是我希望我的程序中的输出2.cs.用于向用户显示信息。
有可能吗?请帮忙
由于 Sai sindhu
答案 0 :(得分:10)
您可以使用ProcessStartInfo.RedirectStandardOutput属性
Process compiler = new Process();
compiler.StartInfo.FileName = "csc.exe";
compiler.StartInfo.Arguments = "/r:System.dll /out:sample.exe stdstr.cs";
compiler.StartInfo.UseShellExecute = false;
compiler.StartInfo.RedirectStandardOutput = true;
compiler.Start();
Console.WriteLine(compiler.StandardOutput.ReadToEnd());
compiler.WaitForExit();
答案 1 :(得分:1)
您必须重定向标准输出流,请查看MSDN以获取更多信息。
当Process将文本写入其标准流时,该文本为 通常显示在控制台上。通过重定向StandardOutput 流,您可以操纵或抑制进程的输出。对于 例如,您可以过滤文本,以不同方式对其进行格式化,或者编写 输出到控制台和指定的日志文件。