PowerShell, поток вывода процесса и ошибки при запуске внешнего процесса
Я использую сценарий PowerShell для запуска консольного приложения, и я пытаюсь перенаправить стандартный вывод и стандартную ошибку оттуда. Я использую следующий код:
$ProcessInfo = New-Object System.Diagnostics.ProcessStartInfo
$ProcessInfo.FileName = "myExe.exe"
$ProcessInfo.Arguments = "bla bla bla"
$ProcessInfo.RedirectStandardError = $true
$ProcessInfo.RedirectStandardOutput = $true
$ProcessInfo.UseShellExecute = $false
$Process = New-Object System.Diagnostics.Process
$Process.StartInfo = $ProcessInfo
$Process.Start() | Out-Null
$output = $Process.StandardOutput.ReadToEnd()
$errors = $Process.StandardError.ReadToEnd()
$Process.WaitForExit()
$output
$errors
return $Process.ExitCode
Пока все хорошо, если у меня есть ошибка, я вижу, что она перенаправлена в консоль PowerShell, и если у меня есть вывод, она также перенаправляется. Проблема в том, что этот процесс занимает 10 минут, а пока мы понятия не имеем, что происходит.
Есть ли способ в PowerShell, я могупоток содержание вывода и ошибки во время выполнения процесса? В чистом .NET мы можем подписаться на события класса Process, могу ли я сделать то же самое в PowerShell?