我正在执行一个 C# 程序,即来自另一个 C# 程序的 .exe。但是 .exe 在其程序中有一些 Console.WriteLine() 。我想把标准输出放到我的 C# 程序中。
例如,
考虑一个 C# 可执行文件,即 1.exe,还有另一个 Program 2.cs。
我从 2.cs 1.exe 打电话。现在控制台从 1.exe 显示一些输出。但我想要我的程序 2.cs 中的输出。用于向用户显示信息。
是否可以?请帮忙
谢谢赛辛杜
我正在执行一个 C# 程序,即来自另一个 C# 程序的 .exe。但是 .exe 在其程序中有一些 Console.WriteLine() 。我想把标准输出放到我的 C# 程序中。
例如,
考虑一个 C# 可执行文件,即 1.exe,还有另一个 Program 2.cs。
我从 2.cs 1.exe 打电话。现在控制台从 1.exe 显示一些输出。但我想要我的程序 2.cs 中的输出。用于向用户显示信息。
是否可以?请帮忙
谢谢赛辛杜
您可以使用 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();
您必须重定向标准输出流,查看MSDN了解更多信息。
当 Process 将文本写入其标准流时,该文本通常会显示在控制台上。通过重定向 StandardOutput 流,您可以操纵或抑制进程的输出。例如,您可以过滤文本、设置不同的格式,或者将输出写入控制台和指定的日志文件。