Granska och använd switch-konstruktionen i Windows PowerShell-skript
Switch-konstruktionen liknar en If-konstruktion som har flera ElseIf-avsnitt. Switch-konstruktionen utvärderar en enskild variabel eller ett objekt mot flera värden och har ett skriptblock för varje värde. Skriptblocket för varje värde körs om det värdet matchar variabeln. Det finns också ett standardavsnitt som endast körs om det inte finns några matchningar.
Switch-konstruktionen använder följande syntax:
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" }
}
Förutom matchande värden kan switch-konstruktionen också användas för att matcha mönster. Du kan använda parametern -wildcard för att utföra mönstermatchning med samma syntax som operatorn -like . Du kan också använda parametern -regex för att utföra matchning med hjälp av reguljära uttryck.
Det är viktigt att vara medveten om att flera matchningar är möjliga när du använder mönstermatchning. När det finns flera matchningar körs skriptblocken för alla matchande mönster. Detta skiljer sig från en If-konstruktion där endast ett skriptblock körs.
I följande exempel används mönstermatchning:
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" }
}
För värden $ip för i London- eller Vancouver-nätverken visas två meddelanden. Om $ip innehåller en IP-adress i 10.x.x.x-nätverket anger meddelandena att datorn finns i det interna nätverket och att datorn finns i antingen London eller Vancouver. Om $ip inte är en IP-adress i 10.x.x.x-nätverket anger meddelandet att den inte finns i det interna nätverket.
Om du anger flera värden i en matris till en Switch-konstruktion utvärderas varje objekt i matrisen. Om variabeln $ip i föregående exempel var en matris med två IP-adresser bearbetas båda IP-adresserna. De åtgärder som är lämpliga för varje objekt i matrisen utförs.