Cómo terminar un script en Windows PowerShell

  1. Utiliza el comando Exit para terminar un script en Windows PowerShell
  2. Utiliza el comando Throw para terminar un script en Windows PowerShell
  3. el comando Return
  4. el comando break
  5. el comando continue
Cómo terminar un script en Windows PowerShell

Hay muchas maneras de terminar un script en Windows PowerShell. Sin embargo, algunos de ellos pueden sonar similares en términos de contexto, pero su propósito real es diferente entre sí en lo que respecta a la funcionalidad.

Este artículo enumerará formas de terminar un script en Windows PowerShell y las definirá una por una.

Utiliza el comando Exit para terminar un script en Windows PowerShell

El comando Exit saldrá de tu script como se deriva de su nombre. Si no tienes una sesión abierta, este comando también cerrará tu ventana de shell o scripting. El comando Exit también es útil para proporcionar retroalimentación utilizando códigos de salida.

exit

Ejecutar solo el comando exit puede tener un código de salida de 0 (por defecto), lo que significa éxito o terminación normal, o 1, lo que significa fallo o un throw no capturado.

Lo excelente de los códigos de salida es que son totalmente personalizables. Siempre que el código de salida sea un entero, el código de salida es válido. Además, para conocer el último código de salida, puedes mostrar la variable $LASTEXITCODE.

Exit.ps1

Write-Output 'Running sample script.'
exit 200

Código de ejemplo:

PS C:\>powershell.exe .\Exit.ps1
PS C:\>Running sample script.
PS C:\>Write-Output $LASTEXITCODE
PS C:\>200

Además, recuerda que cuando llamas a otro archivo de PowerShell con un comando exit desde un script de PowerShell en ejecución, el script en ejecución también se terminará.

Utiliza el comando Throw para terminar un script en Windows PowerShell

El comando Throw es similar al comando Exit con un código de salida, pero es mucho más informativo. Puedes usar el comando y una expresión personalizada para generar errores terminantes. Generalmente, el comando Throw se utiliza dentro del bloque Catch dentro de una expresión Try-Catch para describir una excepción adecuadamente.

Código de ejemplo:

Try {
    $divideAnswer = 1 / 0
}
Catch {
    Throw "The mathematical expression has a syntax error"
}

Salida:

The mathematical expression has a syntax error
At line:4 char:5
+     Throw "The mathematical expression has a syntax error"
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (The mathematica... a syntax error:String) [], RuntimeException
    + FullyQualifiedErrorId : The mathematical expression has a syntax error

el comando Return

A diferencia del comando Exit, el comando Return volverá a su punto de llamada anterior y no cerrará tu ventana de scripting.

Usualmente, utilizamos el comando Return para devolver valores de una función ejecutada en algún lugar del script.

Código de ejemplo:

Function sumValues($int1, $int2) {
    Return ($int1 + $int2)
}

# The function sumValues is called below, and the script will return to 
# the same line with a value and store it in the output variable
$output = sumValues 1 2 

Write-Output $output

Salida:

3

el comando break

Utilizamos el comando break para terminar bucles y casos.

Código de ejemplo:

$numList = 1, 2, 3, 4, 5, 6, 7, 8

foreach ($number in $numList) {
    if ($number -eq 8) {
        #Terminate loop if number variable is equal to 8
        break
    }

    Write-Output $number
}

Salida:

1
2
3
4
5
6
7

Si tenemos bucles anidados, solo romperemos el bucle desde donde se llama al comando break.

Código de ejemplo:

While ($true) {
    While ($true) {
        #The break command will only break out of this while loop
        break
    }
    #The script will continue to run on this line after breaking out of the inner while loop
}

Si deseas salir de un bucle anidado específico, el comando break utiliza etiquetas como su parámetro.

While ($true) {
    :thisLoop While ($true) {
        While ($true) {
            #The break command below will break out of the `thisLoop` while loop.
            Break thisLoop
        }
    }
}

el comando continue

El comando continue también termina el script a nivel de bucle. Sin embargo, en lugar de terminar todo el bucle instantáneamente, el comando continue solo termina la iteración actual y mantiene el bucle en funcionamiento hasta que se hayan procesado todas las iteraciones.

Podemos decir que este es un comando para omitir algo al ejecutar un bucle.

Código de ejemplo:

$numList = 1, 2, 3, 4, 5, 6, 7, 8

foreach ($number in $numList) {
    if ($number -eq 2) {
        #The continue command below will skip number 2 and will directly process the next iteration, resetting the process to the top of the loop.
        continue
    }

    Write-Output $number
}

Salida:

1
3
4
5
6
7
8
¿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
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Artículo relacionado - PowerShell Script