我有这个程序我需要制作,它运行一个bat文件。我走得那么远,所以当我点击按钮时它会打开蝙蝠。但我遇到的3个问题我一直试图解决几天,问题是我需要获取.bat的输出并将其显示在文本框中,我得到了,但它只显示第一个和最少的line ...然后我需要在后台运行.bat。所以你没有看到窗户。然后我还需要能够按下第二个按钮来关闭它。 bat是一个不断更新,让我们说它读取一个数字,然后5秒后将该数字加1并再次显示。并且一遍又一遍地直到你关闭它。这将是对此
的简单描述Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "C:\\Users/jwoow/Desktop/Server/run.bat";
p.Start();
string output = p.StandardOutput.ReadToEnd();
this.RunResults.Text = output;
p.WaitForExit();
答案 0 :(得分:0)
尝试一次只询问一个具体问题。
您可以通过调用CloseMainWindow
来结束此过程。 Process
对象上的方法。像这样:
p.CloseMainWindow();
只需挂钩按钮事件处理程序并调用此方法即可结束该过程。
ReadToEnd
方法将阻塞,直到读取所有行。您可能更需要一个循环来一次读取行,如下所示:
StreamReader output = p.StandardOutput;
while (output.EndOfStream == false)
{
var line = output.ReadLine();
MessageBox.Show(line);
}
为避免显示控制台窗口,您需要在开始此过程之前添加此窗口
p.StartInfo.CreateNoWindow = true;