L'obtention de ExitCode l'aide de Start-Processus et WaitForExit au lieu d'Attendre

Je suis en train de lancer un programme à partir de PowerShell, attendez la sortie, puis obtenir l'accès à la ExitCode, mais je ne suis pas du avoir beaucoup de chance. Je ne veux pas utiliser -Wait avec Start-Processus, comme j'ai besoin de quelques traitement à effectuer en arrière-plan.

Ici est simplifié script de test:

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

L'exécution de ce script va provoquer Le bloc-notes à être démarré. Après c'est fermé manuellement, le code de sortie sera imprimé, et il va commencer à nouveau, sans l'aide de -wait. Pas de ExitCode est fourni lorsque c'est quit:

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:

J'ai besoin d'être en mesure d'effectuer un traitement supplémentaire entre le point de départ du programme et en attente pour elle de cesser de fumer, alors je ne peux pas faire usage de -Wait. Comment puis-je le faire et d'avoir encore accès à l' .ExitCode propriété de ce processus?

InformationsquelleAutor Richard | 2012-04-21