PowerShell
Ejecutando ejecutables
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.