我有一个执行bat文件并在c#应用程序的控制台中输出bat文件输出的代码。但是当我运行该应用程序时,直到bat文件关闭,才读取bat文件的最后一个文件
我做了一些研究,并且有一些不同的方法可以将其输出到c#控制台,但是它们都有相同的问题
private void button2_Click(object sender, EventArgs e)
{
if (Directory.GetFiles(string.Format(@"C:\Users\{0}\Downloads", Environment.UserName), "*", SearchOption.AllDirectories).Length <= 2)
{
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
//p.StartInfo.CreateNoWindow = true;
p.StartInfo.FileName = string.Format(@"C:\Users\{0}\Downloads\test.bat", Environment.UserName);
p.OutputDataReceived += CaptureOutput;
p.Start();
p.BeginOutputReadLine();
//while (!p.StandardOutput.EndOfStream)
//{
// string line = p.StandardOutput.ReadLine();
// Console.WriteLine(line);
// //Console.WriteLine("--kl--");
//}
}
}
static void CaptureOutput(object sender, DataReceivedEventArgs e)
{
Console.WriteLine(e.Data);
}
以及test.bat文件的内容:
@echo off
timeout 10
echo YouCanCloseNow
pause
控制台打印
Waiting for 10 seconds, press a key to continue ... 9 8 7 6 5 4 3 2 1 0
YouCanCloseNow
但不打印
Press any key to continue . . .
直到cmd窗口关闭
因此,正如我所说,我希望在控制台中打印Press any key to continue . . .
,而无需关闭cmd文件