Cómo terminar un script en Windows PowerShell
-
Utiliza el comando
Exit
para terminar un script en Windows PowerShell -
Utiliza el comando
Throw
para terminar un script en Windows PowerShell -
el comando
Return
-
el comando
break
-
el comando
continue

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
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn