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.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow