Revisión y uso de la construcción Switch en scripts de Windows PowerShell

Completado

La construcción Switch es similar a una construcción If con varias secciones ElseIf. La construcción Switch evalúa una sola variable o elemento con varios valores y tiene un bloque de script para cada valor. El bloque de script para cada valor se ejecuta si ese valor coincide con la variable. También hay una sección Default que se ejecuta solo si no hay coincidencias.

La construcción Switch usa la sintaxis siguiente:

Switch ($choice) {
   1 { Write-Host "You selected menu item 1" }
   2 { Write-Host "You selected menu item 2" }
   3 { Write-Host "You selected menu item 3" }
   Default { Write-Host "You did not select a valid option" }
}

Además de los valores coincidentes, la construcción Switch también puede coincidir con patrones. Puede usar el parámetro -Wildcard para realizar coincidencia de patrones con la misma sintaxis que -like operador. Como alternativa, puede usar el -Regex parámetro para que coincida con expresiones regulares.

Cuando se usa la coincidencia de patrones, se pueden realizar varias coincidencias. Cuando hay varias coincidencias, se ejecutan todos los bloques de script de patrón coincidentes. Esto es diferente de una construcción If en la que solo se ejecuta un bloque de script.

En el ejemplo siguiente se usa la coincidencia de patrones:

Switch -Wildcard ($ip) {
   "10.*" { Write-Host "This computer is on the internal network" }
   "10.1.*" { Write-Host "This computer is in London" }
   "10.2.*" { Write-Host "This computer is in Vancouver" }
   Default { Write-Host "This computer is not on the internal network" }
 }

Para los valores de $ip en las redes de Londres o Vancouver, se mostrarán dos mensajes. Si $ip incluye una dirección IP en la red 10.x.x.x, los mensajes indicarán que el equipo está en la red interna y se encuentra o en Londres o en Vancouver. Si $ip no es una dirección IP en la red 10.x.x.x, el mensaje indicará que no se encuentra en la red interna.

Si proporciona varios valores en una matriz para una construcción Switch, se evalúa cada elemento de la matriz. En el ejemplo anterior, si la variable $ip era una matriz con dos direcciones IP, ambas direcciones IP se procesarían y las acciones adecuadas se ejecutarían para cada elemento.