У меня есть код, который выполняет файл bat и выводит вывод файла bat в консоль моего приложения на c #.Но когда я запускаю приложение, последний файл файла 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
, но не 't печатать
Press any key to continue . . .
до тех пор, пока окно cmd не будет закрыто
Итак, как я уже сказал, я хочу, чтобы Press any key to continue . . .
печатался в консоли без необходимости закрывать файл cmd