Obtenga el código de salida del proceso de inicio en PowerShell

John Wachira 15 febrero 2024
Obtenga el código de salida del proceso de inicio en PowerShell

Este artículo ilustra cómo podemos obtener el código de salida del comando Start-Process en PowerShell.

El cmdlet Start-Process nos permite ejecutar uno o varios procesos en nuestras máquinas desde PowerShell. Puede usar el cmdlet para iniciar una aplicación en su computadora.

Obtenga el código de salida de Start-Process en PowerShell

Cuando ejecuta un script de PowerShell, la consola siempre devuelve el estado de la ejecución. PowerShell devuelve cero cuando un script se ejecuta correctamente, mientras que una ejecución fallida devuelve un valor distinto de cero.

El valor resultante de una ejecución de secuencia de comandos fallida se denomina código de error.

¿Cómo podemos obtener el código de salida de Start-Process? Usemos un ejemplo para explicar el concepto.

Digamos que queremos abrir el Bloc de notas desde PowerShell y obtener el código de salida del script. ¿Cómo lo hacemos?

Comencemos con la definición de un script para abrir el Bloc de notas desde PowerShell. Usaremos el cmdlet Start-Process como se ilustra a continuación:

Start-Process -FilePath "notepad.exe" -PassThru -Wait

Este script abrirá el Bloc de notas y esperará a que salgamos manualmente. Sin embargo, necesitamos guardar el comando en una variable para obtener el código de salida.

En nuestro caso, lo guardaremos en la variable $run. Nuestro script leerá:

$run = (Start-Process -FilePath "notepad.exe" -PassThru -Wait)

Después de salir del Bloc de notas, ahora podemos obtener el código de salida como se ilustra a continuación:

$run.ExitCode

Esto devolverá 0 ya que el script se ejecutó con éxito.

código de salida 1

¿Qué pasa si, después de iniciar el Bloc de notas, queremos que se ejecute algún procesamiento en segundo plano? En tal situación, omitiremos el -esperar y en su lugar usaremos $run.WaitExit(), como se ilustra a continuación:

$run = (Start-Process -FilePath "notepad.exe" -PassThru)
$run.WaitExit()

Después de salir del Bloc de notas, podemos obtener el código de salida, como se muestra a continuación:

$run.ExitCode

Esto aún devolverá 0 ya que el script fue exitoso.

En conclusión, puede obtener el código de salida del cmdlet Start-Process guardando el comando en una variable. Esto le permitirá ejecutar el comando $.ExitCode para obtener el código de salida.

Si obtiene un valor distinto de cero, muestra que el script no se ejecutó correctamente.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn