Terminar un script en Windows PowerShell
-
Utilice el comando
Exit
para finalizar un script en Windows PowerShell -
Utilice el comando
Throw
para finalizar un script en Windows PowerShell -
El comando
Return
-
El comando
break
-
El comando
continue
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 specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn