PowerShell
Executables en cours d'exécution
Recherche…
Applications de console
PS> console_app.exe
PS> & console_app.exe
PS> Start-Process console_app.exe
Applications GUI
PS> gui_app.exe (1)
PS> & gui_app.exe (2)
PS> & gui_app.exe | Out-Null (3)
PS> Start-Process gui_app.exe (4)
PS> Start-Process gui_app.exe -Wait (5)
Les applications d'interface graphique se lancent dans un processus différent et renverront immédiatement le contrôle à l'hôte PowerShell. Parfois, vous avez besoin de l'application pour terminer le traitement avant que la prochaine instruction PowerShell ne soit exécutée. Ceci peut être réalisé en redirigeant la sortie de l'application vers $ null (3) ou en utilisant le processus de démarrage avec le commutateur -Wait (5).
Flux de console
PS> $ErrorActionPreference = "Continue" (1)
PS> & console_app.exe *>&1 | % { $_ } (2)
PS> & console_app.exe *>&1 | ? { $_ -is [System.Management.Automation.ErrorRecord] } (3)
PS> & console_app.exe *>&1 | ? { $_ -is [System.Management.Automation.WarningRecord] } (4)
PS> & console_app.exe *>&1 | ? { $_ -is [System.Management.Automation.VerboseRecord] } (5)
PS> & console_app.exe *>&1 (6)
PS> & console_app.exe 2>&1 (7)
Le flux 2 contient des objets System.Management.Automation.ErrorRecord. Notez que certaines applications comme git.exe utilisent le "flux d'erreur" à des fins d'information, qui ne sont pas nécessairement des erreurs. Dans ce cas, il est préférable de regarder le code de sortie pour déterminer si le flux d’erreur doit être interprété comme une erreur.
PowerShell comprend ces flux: Output, Error, Warning, Verbose, Debug, Progress. Les applications natives utilisent généralement uniquement ces flux: Output, Error, Warning.
Dans PowerShell 5, tous les flux peuvent être redirigés vers le flux de sortie / succès standard (6).
Dans les versions antérieures de PowerShell, seuls des flux spécifiques pouvaient être redirigés vers le flux de sortie / succès standard (7). Dans cet exemple, le "flux d'erreur" sera redirigé vers le flux de sortie.
Codes de sortie
PS> $LastExitCode
PS> $?
PS> $Error[0]
Ce sont des variables PowerShell intégrées qui fournissent des informations supplémentaires sur l'erreur la plus récente. $LastExitCode
est le code de sortie final de la dernière application native exécutée. $?
et $Error[0]
est le dernier enregistrement d'erreur généré par PowerShell.