Ricerca…


Applicazioni console

PS> console_app.exe
PS> & console_app.exe
PS> Start-Process console_app.exe

Applicazioni 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)

Le applicazioni GUI vengono avviate in un processo diverso e restituiscono immediatamente il controllo all'host PowerShell. A volte è necessario che l'applicazione completi l'elaborazione prima dell'esecuzione della successiva istruzione PowerShell. Questo può essere ottenuto collegando l'output dell'applicazione a $ null (3) o usando Start-Process con l'opzione -Wait (5).

Stream 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)

Stream 2 contiene oggetti System.Management.Automation.ErrorRecord. Si noti che alcune applicazioni come git.exe utilizzano il "flusso di errori" a scopo informativo, che non sono necessariamente errori. In questo caso è meglio guardare il codice di uscita per determinare se il flusso di errori debba essere interpretato come errore.

PowerShell comprende questi flussi: Output, Error, Warning, Verbose, Debug, Progress. Le applicazioni native generalmente usano solo questi flussi: Output, Error, Warning.

In PowerShell 5, tutti gli stream possono essere reindirizzati allo standard output / success stream (6).

Nelle precedenti versioni di PowerShell, solo gli stream specifici possono essere reindirizzati allo standard output / success stream (7). In questo esempio, il "flusso di errori" verrà reindirizzato al flusso di output.

Codici di uscita

PS> $LastExitCode
PS> $?
PS> $Error[0]

Si tratta di variabili PowerShell integrate che forniscono informazioni aggiuntive sull'errore più recente. $LastExitCode è il codice di uscita finale dell'ultima applicazione nativa che è stata eseguita. $? e $Error[0] è l'ultimo record di errore generato da PowerShell.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow