Comment obtenir le code de sortie de Start-Process dans PowerShell
-
Obtenir le code de sortie à partir de la commande
Start-Process
dans PowerShell en utilisant le paramètre-Wait
-
Obtenir le code de sortie à partir de la commande
Start-Process
dans PowerShell en vérifiant la variable$LastExitCode
-
Obtenir le code de sortie à partir de la commande
Start-Process
dans PowerShell en utilisant un objet processus - Conclusion

Dans PowerShell, le cmdlet Start-Process
est utilisé pour lancer de nouveaux processus, mais obtenir le code de sortie d’un processus démarré avec cette commande n’est pas simple. Le code de sortie représente l’état du processus après son achèvement, et il peut être précieux pour des fins de script ou pour déterminer si le processus a réussi.
Dans cet article, nous explorerons des façons d’obtenir le code de sortie d’un processus initié en utilisant Start-Process
dans PowerShell.
Obtenir le code de sortie à partir de la commande Start-Process
dans PowerShell en utilisant le paramètre -Wait
Avant de plonger dans la façon de récupérer le code de sortie en utilisant le paramètre -Wait
, discutons brièvement des codes de sortie. Un code de sortie est une valeur numérique qu’un processus renvoie une fois terminé.
Conventionnellement, un code de sortie de 0
indique une exécution réussie, tandis que les codes de sortie non nuls représentent des erreurs ou des conditions spécifiques définies par l’application ou le script exécuté.
Le paramètre -Wait
dans le cmdlet Start-Process
indique à PowerShell d’attendre que le processus démarré soit terminé avant de continuer avec le script. Cela est crucial pour obtenir le code de sortie du processus.
Explorons une approche étape par étape pour y parvenir :
-
Pour démarrer un processus et attendre qu’il se termine à l’aide du paramètre
-Wait
, utilisez la syntaxe suivante :Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow -Wait
Remplacez
"YourExecutable.exe"
par le chemin vers l’exécutable ou le script que vous souhaitez exécuter et"YourArguments"
par les arguments requis par le processus. -
Pour capturer le processus et son code de sortie, enregistrez la commande
Start-Process
dans une variable :$process = Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow -Wait -PassThru
Le paramètre
-PassThru
permet de sauvegarder l’objet processus dans la variable$process
. -
Une fois le processus terminé, vous pouvez accéder à son code de sortie en utilisant la propriété
ExitCode
de l’objet processus stocké dans la variable :$exitCode = $process.ExitCode Write-Host "Exit code: $exitCode"
Le cmdlet
Write-Host
est utilisé pour afficher le code de sortie obtenu dans la console.
En utilisant le paramètre -Wait
et en accédant à la propriété ExitCode
, vous pouvez récupérer avec succès le code de sortie d’un processus initié à l’aide de Start-Process
dans PowerShell.
Voici un exemple de script qui illustre les étapes mentionnées ci-dessus :
# Start the process and wait for it to complete
$process = Start-Process -FilePath "notepad.exe" -NoNewWindow -Wait -PassThru
# Retrieve the exit code
$exitCode = $process.ExitCode
Write-Host "Exit code: $exitCode"
Dans cet exemple, nous démarrons l’application Notepad, attendons qu’elle se termine, puis obtenons et affichons le code de sortie.
Obtenir le code de sortie à partir de la commande Start-Process
dans PowerShell en vérifiant la variable $LastExitCode
PowerShell stocke automatiquement le code de sortie du processus exécuté le plus récemment dans la variable $LastExitCode
. Cette variable peut être accédée après qu’un processus a été démarré à l’aide de Start-Process
.
Voici une approche étape par étape pour utiliser $LastExitCode
:
-
Commencez par démarrer le processus souhaité en utilisant le cmdlet
Start-Process
. Voici une syntaxe générique :Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow
Remplacez
"YourExecutable.exe"
par le chemin vers l’exécutable ou le script que vous souhaitez exécuter et"YourArguments"
par les arguments requis par le processus. -
Après que le processus soit terminé, accédez au code de sortie en utilisant la variable
$LastExitCode
:$exitCode = $LastExitCode Write-Host "Exit code: $exitCode"
Le cmdlet
Write-Host
est utilisé pour afficher le code de sortie dans la console.
En utilisant la variable $LastExitCode
, vous pouvez récupérer facilement le code de sortie d’un processus initié à l’aide de Start-Process
dans PowerShell.
Voici un exemple de script complet qui illustre les étapes ci-dessus :
# Start the process
Start-Process -FilePath "notepad.exe" -NoNewWindow
# Access the exit code
$exitCode = $LastExitCode
Write-Host "Exit code: $exitCode"
Dans cet exemple, nous démarrons l’application Notepad puis accédons et affichons le code de sortie en utilisant $LastExitCode
.
Obtenir le code de sortie à partir de la commande Start-Process
dans PowerShell en utilisant un objet processus
Lors de l’utilisation du paramètre -PassThru
avec Start-Process
, le cmdlet retourne un objet System.Diagnostics.Process
représentant le processus nouvellement démarré. Vous pouvez ensuite accéder au code de sortie en utilisant la propriété ExitCode
de cet objet.
Voici une approche étape par étape pour y parvenir :
-
Démarrez le processus souhaité et capturez l’objet processus en utilisant le paramètre
-PassThru
:$process = Start-Process -FilePath "YourExecutable.exe" -ArgumentList "YourArguments" -NoNewWindow -PassThru
Remplacez
"YourExecutable.exe"
par le chemin vers l’exécutable ou le script que vous souhaitez exécuter et"YourArguments"
par les arguments requis par le processus. -
Si nécessaire, attendez que le processus se termine en utilisant la méthode
WaitForExit()
:$process.WaitForExit()
Cette étape garantit que le script attend que le processus se termine avant de continuer.
-
Une fois le processus terminé, accédez à son code de sortie en utilisant la propriété
ExitCode
:$exitCode = $process.ExitCode Write-Host "Exit code: $exitCode"
Le cmdlet
Write-Host
est utilisé pour afficher le code de sortie dans la console.
En utilisant un objet processus et en accédant à la propriété ExitCode
, vous pouvez récupérer avec succès le code de sortie d’un processus initié à l’aide de Start-Process
dans PowerShell.
Voici un exemple de script complet qui illustre les étapes mentionnées ci-dessus :
# Start the process and obtain a process object
$process = Start-Process -FilePath "notepad.exe" -NoNewWindow -PassThru
# Wait for the process to complete
$process.WaitForExit()
# Access the exit code
$exitCode = $process.ExitCode
Write-Host "Exit code: $exitCode"
Dans cet exemple, nous démarrons l’application Notepad, attendons qu’elle se termine, puis obtenons et affichons le code de sortie en utilisant l’objet processus.
Conclusion
Obtenir le code de sortie d’un processus démarré avec le cmdlet Start-Process
dans PowerShell peut être réalisé en utilisant le paramètre -Wait
, la variable $LastExitCode
, ou en accédant à la propriété ExitCode
de l’objet System.Diagnostics.Process
.
Comprendre comment récupérer le code de sortie vous permet de gérer et de répondre de manière programmatique aux résultats des processus, améliorant ainsi l’automatisation et la fiabilité de vos scripts PowerShell.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn