我试图从批处理文件中获取输出,但是当我成功从循环中获取输出并放入富文本框时,Form应用程序冻结,所以问题如何从批处理文件中获取实时输出(完全是控制台模式下的java应用程序(Minecraft服务器))没有冻结应用程序?
答案 0 :(得分:0)
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
。