Buscar..


Aplicaciones de consola

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

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

Las aplicaciones GUI se inician en un proceso diferente e inmediatamente devolverán el control al host de PowerShell. A veces, necesita que la aplicación termine de procesarse antes de que se ejecute la siguiente instrucción de PowerShell. Esto se puede lograr canalizando la salida de la aplicación a $ null (3) o utilizando el proceso de inicio con el interruptor -Wait (5).

Transmisiones de consola

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)

La secuencia 2 contiene objetos System.Management.Automation.ErrorRecord. Tenga en cuenta que algunas aplicaciones como git.exe utilizan la "secuencia de error" con fines informativos, que no son necesariamente errores en absoluto. En este caso, es mejor mirar el código de salida para determinar si la secuencia de error debe interpretarse como errores.

PowerShell entiende estas secuencias: Salida, Error, Advertencia, Verbose, Depurar, Progreso. Las aplicaciones nativas comúnmente usan solo estas secuencias: Salida, Error, Advertencia.

En PowerShell 5, todos los flujos pueden redirigirse al flujo de salida / éxito estándar (6).

En versiones anteriores de PowerShell, solo las secuencias específicas se pueden redirigir a la secuencia de salida / éxito estándar (7). En este ejemplo, el "flujo de error" se redireccionará al flujo de salida.

Códigos de salida

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

Estas son variables incorporadas de PowerShell que proporcionan información adicional sobre el error más reciente. $LastExitCode es el código de salida final de la última aplicación nativa que se ejecutó. $? y $Error[0] es el último registro de error generado por PowerShell.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow