Вход в текстовый файл из Process.Start

Я запускаю процесс, используя Process.Start(ProcessStartInfo). В настоящее время он вызывает окно консоли, и вывод процесса отображается там до тех пор, пока процесс не завершится, и в этом случае окно консоли закрывается автоматически.

Процесс выводит много текста, поэтому я не просто хочу перенаправить этот вывод в строку, как примеры, которые я нашел до сих пор.

Как я могу получить текст консольного вывода, чтобы войти в текстовый файл журнала?

ProcessStartInfo myPSI = new ProcessStartInfo();
myPSI.FileName = myFileName;
myPSI.Arguments = myArgs;
myPSI.CreateNoWindow = false;
myPSI.UseShellExecute = false;
myPSI.WindowStyle = ProcessWindowStyle.Hidden;

try
{
  using (Process exeProcess = Process.Start(myPSI))
  {
    exeProcess.WaitForExit();
  }
}
catch
{
}

2 ответа

Решение

Вы можете перенаправить вывод на что угодно... например, на поток... вы можете даже обработать вывод в отдельном потоке, если хотите - исходный код и подробности см. http://www.codeproject.com/KB/threads/ReadProcessStdoutStderr.aspx

Вам нужно использовать перенаправление вывода. Смотрите здесь: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput.aspx

Другие вопросы по тегам