Cómo obtener el código de salida de Start-Process en PowerShell

  1. Obtener el Código de Salida del Comando Start-Process en PowerShell Usando el Parámetro -Wait
  2. Obtener el Código de Salida del Comando Start-Process en PowerShell Verificando la Variable $LastExitCode
  3. Obtener el Código de Salida del Comando Start-Process en PowerShell Usando un Objeto de Proceso
  4. Conclusión
Cómo obtener el código de salida de Start-Process en PowerShell

En PowerShell, el cmdlet Start-Process se utiliza para iniciar nuevos procesos, pero obtener el código de salida de un proceso iniciado con este comando no es sencillo. El código de salida representa el estado del proceso una vez que ha finalizado, y puede ser valioso para propósitos de scripting o para determinar si el proceso fue exitoso.

En este artículo, exploraremos maneras de obtener el código de salida de un proceso iniciado usando Start-Process en PowerShell.

Obtener el Código de Salida del Comando Start-Process en PowerShell Usando el Parámetro -Wait

Antes de profundizar en cómo recuperar el código de salida utilizando el parámetro -Wait, discutamos brevemente qué son los códigos de salida. Un código de salida es un valor numérico que un proceso devuelve al completarse.

Convencionalmente, un código de salida de 0 indica una ejecución exitosa, mientras que los códigos de salida diferentes de cero representan errores o condiciones específicas definidas por la aplicación o script ejecutado.

El parámetro -Wait en el cmdlet Start-Process instruye a PowerShell a esperar a que el proceso iniciado se complete antes de continuar con el script. Esto es crucial para obtener el código de salida del proceso.

Exploraremos un enfoque paso a paso para lograr esto:

Al emplear el parámetro -Wait y acceder a la propiedad ExitCode, puedes recuperar con éxito el código de salida de un proceso iniciado usando Start-Process en PowerShell.

Aquí hay un script de ejemplo que ilustra los pasos mencionados anteriormente:

 powershellCopy# Start the process and wait for it to complete
$process = Start-Process -FilePath "notepad.exe" -NoNewWindow -Wait -PassThru

# Retrieve the exit code
$exitCode = $process.ExitCode
Write-Host "Exit code: $exitCode"

En este ejemplo, iniciamos la aplicación de Notepad, esperamos a que se complete y luego obtenemos y mostramos el código de salida.

Obtener el Código de Salida del Comando Start-Process en PowerShell Verificando la Variable $LastExitCode

PowerShell almacena automáticamente el código de salida del proceso ejecutado más recientemente en la variable $LastExitCode. Esta variable se puede acceder después de que un proceso se inicie usando Start-Process.

Aquí hay un enfoque paso a paso para utilizar $LastExitCode:

Al aprovechar la variable $LastExitCode, puedes recuperar sin esfuerzo el código de salida de un proceso iniciado usando Start-Process en PowerShell.

A continuación se muestra un script de ejemplo completo que ilustra los pasos anteriores:

 powershellCopy# Start the process
Start-Process -FilePath "notepad.exe" -NoNewWindow

# Access the exit code
$exitCode = $LastExitCode
Write-Host "Exit code: $exitCode"

En este ejemplo, iniciamos la aplicación de Notepad y luego accedemos y mostramos el código de salida usando $LastExitCode.

Obtener el Código de Salida del Comando Start-Process en PowerShell Usando un Objeto de Proceso

Al utilizar el parámetro -PassThru con Start-Process, el cmdlet devuelve un objeto System.Diagnostics.Process que representa el proceso recién iniciado. Luego puedes acceder al código de salida usando la propiedad ExitCode de este objeto.

Aquí hay un enfoque paso a paso para lograr esto:

Al aprovechar un objeto de proceso y acceder a la propiedad ExitCode, puedes recuperar con éxito el código de salida de un proceso iniciado usando Start-Process en PowerShell.

Aquí hay un script de ejemplo completo que ilustra los pasos mencionados anteriormente:

 powershellCopy# Start the process and obtain a process object
$process = Start-Process -FilePath "notepad.exe" -NoNewWindow -PassThru

# Wait for the process to complete
$process.WaitForExit()

# Access the exit code
$exitCode = $process.ExitCode
Write-Host "Exit code: $exitCode"

En este ejemplo, iniciamos la aplicación de Notepad, esperamos a que se complete y luego obtenemos y mostramos el código de salida usando el objeto de proceso.

Conclusión

Obtener el código de salida de un proceso iniciado con el cmdlet Start-Process en PowerShell se puede lograr utilizando el parámetro -Wait, la variable $LastExitCode, o accediendo a la propiedad ExitCode del objeto System.Diagnostics.Process.

Entender cómo recuperar el código de salida te permite manejar y responder programáticamente a los resultados de los procesos, mejorando la automatización y confiabilidad de tus scripts de PowerShell.

¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete
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