Cómo finalizar correctamente un script con el comando de salida de PowerShell



PowerShell Exites un poco peculiar, pero realmente te ayuda a desconectar scripts, funciones o incluso la propia consola cuando las cosas no van bien. Si alguna vez has tenido un script que sigue ejecutándose después de saber que algo va mal, o simplemente quieres detenerlo según una condición específica, esta es tu herramienta ideal. En algunas configuraciones, es un poco inestable (puede que no funcione a la primera), así que no te sorprendas si falla la primera vez y luego funciona correctamente después de reiniciar. Básicamente, Exitle dice a PowerShell «Ya basta» y detiene la ejecución de lo que se esté ejecutando. Incluso te permite enviar un código de salida a Windows, lo cual puede ser útil si un script necesita comunicar el éxito o el fracaso a otro programa. Se aplica cuando quieres detener un script prematuramente (por ejemplo, cuando surge una condición de error) y cuando necesitas finalizar una sesión remota correctamente. Si estás trabajando dentro de un script y quieres asegurarte de que se detenga inmediatamente, usa » Salir» en el momento adecuado. Como es lógico, PowerShell complica las cosas al requerir comandos específicos para cerrar sesiones o salir correctamente. Aquí te explicamos cómo hacerlo correctamente, junto con algunos consejos prácticos para cuando no se comporte como se espera. Y si realizas tareas avanzadas, como salir de bucles anidados o devolver datos de funciones, existen otras palabras clave como Break y Return. Pero para cerrar scripts, Exites la clave.

Cómo usar correctamente la salida de PowerShell

Salir de un script en el momento adecuado

Si se produce una condición específica (como un archivo faltante, un error de conexión u otro error), es posible que desee detener todo de inmediato. Al indicar Exitdónde se detecta el problema, PowerShell detendrá la ejecución. En algunos sistemas, es posible que desee enviar un código de error para que otros scripts o sistemas sepan qué sucedió. Por ejemplo, si está ejecutando un script de implementación y se encuentra con un error irrecuperable, puede hacer lo siguiente:

# Check if a required file exists, exit if not if (-not (Test-Path "C:\ImportantFile.txt")) { Write-Host "Missing important file. Exiting..." Exit 1 # Non-zero exit codes usually mean errors } # Continue with script if file found Write-Host "File exists, proceeding..." 

Esto es útil porque detiene el script por completo. Sin embargo, tenga en cuenta que, en algunas configuraciones, la llamada Exitpodría cerrar toda la ventana de PowerShell o finalizar la sesión; en cuyo caso, es bastante grave. Por lo tanto, úselo con cuidado al automatizar tareas o en scripts de automatización.

Cómo salir de una sesión remota de PowerShell

Si se ha conectado a un sistema remoto mediante Enter-PSSession o Invoke-Command, puede usar Exit-PSSessionpara salir. Es básicamente lo mismo, Exitpero adaptado para sesiones remotas:

Exit-PSSession 

Esto cerrará tu conexión remota y te llevará de vuelta al símbolo del sistema local. Si estás en una sesión anidada, es posible que tengas que ejecutarlo varias veces o dirigirte a la sesión específica.

Algunos ejemplos prácticos

Salir de una función o script

Normalmente, se desea detener una función o script cuando algo falla. A diferencia de Break, que solo detiene un bucle, Exitcierra todo el script o sesión. Aquí hay un escenario común:

function Check-Value { param([int]$Number) if ($Number -lt 0) { Write-Host "Negative number found. Exiting..." Exit 1 } Write-Host "Number is $Number. Moving on..." } Check-Value -Number -3 

Si el número es negativo, PowerShell se cerrará inmediatamente. Es bastante complicado, pero a veces es lo que se necesita, sobre todo en scripts donde no es posible continuar.

Salir de toda la consola

Si desea cerrar la ventana de PowerShell por completo, Exit 0esta es la mejor manera de hacerlo. Esto indica que todo se ha completado correctamente. Esto es útil en scripts que terminan su trabajo y luego desean cerrarse automáticamente:

# Close PowerShell with a success code Exit 0 

Entonces, sí, Exites poderoso, pero también un poco aterrador si no lo sabes, podría arruinar toda tu sesión.

Resumen

  • Utilice Exitscripts o funciones internas para detener la ejecución inmediatamente cuando se cumplan determinadas condiciones.
  • Es útil para el manejo de errores, especialmente cuando necesita devolver un código de error específico al sistema.
  • Tenga cuidado: puede cerrar toda su sesión de PowerShell o conexión remota si se utiliza en el momento incorrecto.
  • Para bucles internos, probablemente desee Break ; para funciones, Return.

Resumen

PowerShell Exites como desconectar el sistema: úsalo con cuidado. Es útil cuando los scripts están inactivos y hay que detenerlos antes de que causen más daño. Ten en cuenta que es un poco brusco, así que no lo dejes en un script que estés depurando a menos que estés seguro de que quieres abandonarlo por completo. Con suerte, esto le ahorrará algunas horas a alguien; desconectar un script antes puede ahorrarte muchos dolores de cabeza.



¿Te resultó útil este artículo?