Búsqueda de sitios web

Declaración de cambio de PowerShell con múltiples condiciones


Recientemente, mientras trabajaba en un script de PowerShell, uno de los miembros de mi equipo preguntó cómo usar múltiples condiciones en una declaración de cambio de PowerShell. Probé la solución y explicaré la instrucción de cambio de PowerShell con múltiples condiciones, con tres ejemplos útiles.

Nota: He ejecutado todos los scripts de PowerShell usando el editor de código VS.

Declaración de cambio en PowerShell

Una declaración switch en PowerShell es similar a las declaraciones switch o case que se encuentran en otros lenguajes de programación. Proporciona una forma más limpia y legible de manejar múltiples condiciones en comparación con el uso de múltiples declaraciones if.

Aquí hay un ejemplo básico de una declaración switch:

$a = 3
switch ($a) {
    1 { "It is one." }
    2 { "It is two." }
    3 { "It is three." }
    default { "It is something else." }
}

En este ejemplo, la variable $a se evalúa con los valores 1, 2 y 3. Dado que $a es 3, el resultado será "Son tres".

También escribí un tutorial completo sobre cómo usar Switch Case en PowerShell, puedes leerlo.

Ahora, centrémonos en cómo usar múltiples condiciones en la declaración de cambio en PowerShell.

Declaración de cambio con múltiples condiciones en PowerShell

PowerShell le permite probar múltiples condiciones dentro de un solo caso de declaración switch. Esto se hace utilizando la $_ variable y operadores lógicos dentro de los bloques de script.

Déjame mostrarte tres ejemplos en tiempo real para entenderlo mejor.

Ejemplo 1: múltiples valores en un solo caso

Puede especificar varios valores en un solo caso utilizando la variable $_ y los operadores lógicos.

A continuación se muestra un ejemplo y el script de PowerShell completo.

$day = "Saturday"
switch ($day) {
    {$_ -eq "Saturday" -or $_ -eq "Sunday"} { "It is the weekend." }
    {$_ -eq "Monday" -or $_ -eq "Tuesday" -or $_ -eq "Wednesday" -or $_ -eq "Thursday" -or $_ -eq "Friday"} { "It is a weekday." }
    default { "Unknown day." }
}

En este ejemplo, si $day es "sábado" o "domingo", el resultado será "Es fin de semana". Para cualquier día de la semana, el resultado será "Es un día de la semana".

Después de ejecutar el script de PowerShell anterior, me dio el resultado exacto; mira la captura de pantalla a continuación:

Leer el parámetro del conmutador PowerShell

Ejemplo 2: utilizar múltiples condiciones con operadores lógicos

A veces, es posible que necesites evaluar condiciones más complejas utilizando operadores lógicos. Si bien la declaración switch en sí no admite operadores lógicos directamente dentro de las etiquetas de caso, puede usar bloques de secuencia de comandos para lograrlo.

A continuación se muestra un ejemplo del uso de operadores lógicos en la instrucción Switch en PowerShell.

$number = 8
switch ($number) {
    { $_ -lt 5 } { "The number is less than 5." }
    { $_ -ge 5 -and $_ -le 10 } { "The number is between 5 and 10." }
    { $_ -gt 10 } { "The number is greater than 10." }
    default { "Unknown number." }
}

En este ejemplo, la variable $number se compara con múltiples condiciones mediante bloques de script. El $_ representa el elemento actual que se está evaluando. Si $number es 8, el resultado será "El número está entre 5 y 10".

Ejecuté el script de PowerShell anterior y puedes ver el resultado en la siguiente captura de pantalla:

Leer la caja del interruptor PowerShell con Regex

Ejemplo 3: combinar condiciones y acciones

También puede combinar condiciones y acciones dentro de una instrucción switch para manejar escenarios más complejos en PowerShell.

Mire el ejemplo y el script a continuación:

$input = "apple"
switch ($input) {
    {$_ -eq "apple" -or $_ -eq "banana"} { "It's a fruit." }
    {$_ -eq "carrot" -or $_ -eq "lettuce"} { "It's a vegetable." }
    { $_ -match "berry" } { "It's a type of berry." }
    default { "Unknown item." }
}

En este ejemplo, la instrucción switch maneja diferentes tipos de entrada. Si $input es "manzana" o "plátano", el resultado será "Es una fruta". Si coincide con un patrón que contiene "baya", el resultado será "Es un tipo de baya".

Aquí está el resultado en la siguiente captura de pantalla:

Espero que hayas aprendido a utilizar varias condiciones en una declaración de cambio de PowerShell con estos útiles ejemplos.

Artículos relacionados