您的位置:首页 > 编程语言 > C#

C# 读取控制台的Console.Write

2019-05-16 23:17 2859 查看

一个程序去调用另一个xxx.exe的时候,需要记录下这个exe里面的console.write的输出

public static string InvokeExcute(string Command)
{
Command = Command.Trim().TrimEnd('&') + "&exit";
using (Process p = new Process())
{
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;        //是否使用操作系统shell启动
p.StartInfo.RedirectStandardInput = true;   //接受来自调用程序的输入信息
p.StartInfo.RedirectStandardOutput = true;  //由调用程序获取输出信息
p.StartInfo.RedirectStandardError = true;   //重定向标准错误输出
p.StartInfo.CreateNoWindow = false;          //不显示程序窗口
p.Start();//启动程序
//向cmd窗口写入命令
p.StandardInput.WriteLine(Command);
p.StandardInput.AutoFlush = true;
//获取cmd窗口的输出信息
StreamReader reader = p.StandardOutput;//截取输出流
StreamReader error = p.StandardError;//截取错误信息
string str = reader.ReadToEnd() + error.ReadToEnd();
p.WaitForExit();//等待程序执行完退出进程
p.Close();
return str;
}
}

调用

var str = InvokeExcute(@"E:\Code\Xamarin\test1\test1\bin\Debug\test1.exe");
Console.WriteLine(str);

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: