vb.Net c#运行批处理文件并流式传输其输出
本文关键字:传输 输出 Net 运行 批处理文件 vb | 更新日期: 2023-09-27 18:29:52
我在c#中的VB.NET中遇到了这个问题,我在这个项目中需要运行一个批处理文件,这很容易。但我的问题是,我需要在批处理文件、cmd窗口和文本框中显示所有显示的内容,现在,这段代码打开文件没有问题:
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false
proc.StartInfo.FileName = "C:''Users''jwoow''Desktop''Server''run.bat";
proc.Start().ToString();
但它不会将代码移到文本框中,此代码会传输最后显示的行,但不会传输批处理文件的全部内容,它还会关闭cmd窗口,我需要它保持打开状态:
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "C:''Users/jwoow/Desktop/Server/run.bat";
//this line hides cmd window
//p.StartInfo.CreateNoWindow = true;
p.Start();
StreamReader output = p.StandardOutput;
while (output.EndOfStream == false)
{
string line = output.ReadLine();
this.RunResults.Text = line;
}
o是的,批处理文件是针对服务器的,它显示服务器上用户的amt(每2分钟更新一次),并显示用户执行的不同事件。所以它在不断地更新。
执行后使用"暂停"命令保持窗口打开。输出到屏幕上的文本对于您正在使用的每个程序都会有所不同。大多数程序允许您根据给定的参数显示不同的输出。
将其放入类中并调用代码。让最后一步有一个定时器,它会暂停两分钟,然后在2分钟延迟结束时循环回到开始。