У меня есть приложение с Process
, которое использует программу cmd.Вывод процесса перенаправляется следующим образом:
pr.StartInfo.RedirectStandardOutput = true;
pr.StartInfo.UseShellExecute = false;
pr.StartInfo.CreateNoWindow = true;
pr.EnableRaisingEvents = true
pr.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
pr.OutputDataReceived += new DataReceivedEventHandler(OnDataReceived);
pr.ErrorDataReceived += new DataReceivedEventHandler(OnDataReceived);
Вывод затем записывается в консоль с помощью:
public void OnDataReceived(object sender, DataReceivedEventArgs e)
{
if(e.Data != null)
{
Console.WriteLine(e.Data);
}
}
Моя проблема в том, что Visual Studio печатает вывод, он очень отличается отвывод командной строки.Например, я пытаюсь извлечь данные из вывода, чтобы увидеть, сколько работы было сделано.Вывод моего приложения:
0K .......... .......... .......... .......... .......... 1% (ноль)
50K .......... .......... .................... .......... 2% (ноль)
100K .......... .................... .......... .......... 3% (ноль)
150K .......... .......... .......... .......... .......... 5% (ноль)
исходный вывод программы командной строки (индикатор хода выполнения и процент накапливаются с течением времени):
100% [==================================]
Это может показаться не большой разницей, но я пытаюсь добиться этого.Почему вывод Visual Studio не совпадает с выводом CMD?
Ps.Аргументы одинаковы в обоих примерах.