Terminar un script en Windows PowerShell

  1. Utilice el comando Exit para finalizar un script en Windows PowerShell
  2. Utilice el comando Throw para finalizar un script en Windows PowerShell
  3. El comando Return
  4. El comando break
  5. El comando continue
Terminar un script en Windows PowerShell

Hay muchas formas de finalizar 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 finalizar un script en Windows PowerShell y definirlas una por una.

Utilice el comando Exit para finalizar un script en Windows PowerShell

El comando Exit saldrá de su script como se deriva de su nombre. Si no tiene una sesión abierta, este comando también cerrará su shell o ventana de secuencias de comandos. El comando Exit también es útil para proporcionar comentarios mediante el uso de códigos de salida.

exit

Ejecutar solo el comando exit puede tener un código de salida de 0 (predeterminado), que significa éxito o finalización normal, o 1, que significa falla o un tiro no atrapado.

Lo excelente de los códigos de salida es que los códigos de salida son totalmente personalizables. Siempre que el código de salida sea un número entero, el código de salida es válido. Además, para conocer el último código de salida, puede generar 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, recuerde que cuando llama a otro archivo de PowerShell con un comando exit desde un script de PowerShell en ejecución, el script en ejecución también terminará.

Utilice el comando Throw para finalizar 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. Puede usar el comando y una expresión personalizada para generar errores de terminación. Por lo general, el comando Throw se usa dentro del bloque Catch dentro de una expresión Try-Catch para describir adecuadamente una excepción.

Código de ejemplo:

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

Producción :

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á la ventana de secuencias de comandos.

Por lo general, usamos 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

Producción :

3

El comando break

Usamos 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
}

Producción :

1
2
3
4
5
6
7

Si tenemos bucles anidados, solo nos separamos del 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 desea 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 finaliza el script en el nivel de bucle. Aún así, en lugar de terminar todo el bucle instantáneamente, el comando continue solo termina la iteración actual y mantiene el bucle en marcha hasta que se hayan procesado todas las iteraciones.

Podemos decir que este es un comando para saltarse 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
}

Producción :

1
3
4
5
6
7
8
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