这个问题在这里已有答案:
我试图从批处理文件中获取输出,但是当我成功从循环中获取输出并放入富文本框时,Form应用程序冻结,所以问题如何从批处理文件中获取实时输出(恰好是一个java应用程序)控制台模式(Minecraft服务器))没有冻结应用程序?
List<String> output = new List<String>();
ProcessStartInfo psi = new ProcessStartInfo("cmd.exe", @"/C C:\mycommand.bat");
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;
Process process = new Process();
process.StartInfo = psi;
process.OutputDataReceived += (sender, evt) => output.Add(evt.Data);
process.Start();
process.BeginOutputReadLine();
process.WaitForExit();
一旦批处理文件被执行,列表将包含其输出,您可以对其进行后处理并将其插入到RichTextBox
中。