Uzyskanie kodu ExitCode przy użyciu Start-Process i WaitForExit zamiast -Wait

Próbuję uruchomić program z PowerShell, poczekać na wyjście, a następnie uzyskać dostęp do kodu ExitCode, ale nie mam dużo szczęścia. Nie chcę używać-Wait zStart-Process, ponieważ potrzebuję trochę przetwarzania, aby kontynuować w tle.

Oto uproszczony skrypt testowy:

<code>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
</code>

Uruchomienie tego skryptu spowodujeNotatnik do rozpoczęcia. Po ręcznym zamknięciu kod wyjścia zostanie wydrukowany i rozpocznie się ponownie bez użycia-wait. Nie ma kodu ExitCode, gdy jest on zamykany:

<code>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:
</code>

Muszę być w stanie wykonać dodatkowe przetwarzanie między uruchomieniem programu i oczekiwaniem na jego zamknięcie, więc nie mogę z niego skorzystać-Wait. Jak mogę to zrobić i nadal mieć dostęp do właściwości .ExitCode z tego procesu?

questionAnswers(5)

yourAnswerToTheQuestion