Я пытаюсь запустить программу из PowerShell, дождаться выхода, а затем получить доступ к ExitCode, но не имея большой удачи. Я не хочу использовать -Wait с Start-Process, так как мне нужна некоторая обработка для продолжения в фоновом режиме.
Здесь упрощенный тест script:
cd "C:\Windows"
# ExitCode is available when using -Wait...
Write-Host "Starting Notepad with -Wait - return code will be available"
$process = (Start-Process -FilePath "notepad.exe" -PassThru -Wait)
Write-Host "Process finished with return code: " $process.ExitCode
# ExitCode is not available when waiting separately
Write-Host "Starting Notepad without -Wait - return code will NOT be available"
$process = (Start-Process -FilePath "notepad.exe" -PassThru)
$process.WaitForExit()
Write-Host "Process exit code should be here: " $process.ExitCode
Запуск этого script приведет к запуску блокнота. После того, как это будет закрыто вручную, код выхода будет напечатан, и он начнется снова, не используя -wait. При выходе из него не появляется ExitCode:
Starting Notepad with -Wait - return code will be available
Process finished with return code: 0
Starting Notepad without -Wait - return code will NOT be available
Process exit code should be here:
Мне нужно иметь возможность выполнять дополнительную обработку между запуском программы и ожиданием ее выхода, поэтому я не могу использовать -Wait. Любая идея, как я могу это сделать и все еще иметь доступ к свойству .ExitCode из этого процесса?