Xem lại và sử dụng cấu trúc Switch trong tập lệnh Windows PowerShell
Cấu trúc Switch tương tự như cấu trúc If có nhiều ElseIf. Cấu Switch định trị một biến đơn hoặc mục dựa trên nhiều giá trị và có một khối script cho mỗi giá trị. Khối script cho mỗi giá trị được chạy nếu giá trị đó khớp với biến. Ngoài ra còn có một mặc chạy chỉ khi không có kết quả trùng khớp.
Cấu Switch dùng cú pháp sau đây:
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" }
}
Ngoài các giá trị khớp, cấu trúc Switch cũng có thể được sử dụng để khớp với các mẫu hình. Bạn có thể sử dụng tham tự đại để thực hiện khớp mẫu hình bằng cách sử dụng cùng một cú pháp với toán tử -like của bạn. Ngoài ra, bạn có thể sử dụng tham -regex thực hiện khớp bằng cách sử dụng biểu thức thông thường.
Điều quan trọng cần lưu ý là khi bạn sử dụng khớp mẫu hình, có thể có nhiều kết quả trùng khớp. Khi có nhiều kết quả trùng khớp, các khối kịch bản cho tất cả các mẫu phù hợp sẽ chạy. Điều này khác với một nếu xây dựng trong đó chỉ có một khối kịch bản được chạy.
Ví dụ sau đây sử dụng khớp mẫu hình:
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" }
}
Đối với các giá $ip
trên mạng London hoặc Vancouver, hai thông báo sẽ được hiển thị. Nếu $ip
gồm một địa chỉ IP trên mạng 10.x.x.x, các thông báo sẽ cho biết rằng máy tính nằm trên mạng nội bộ và máy tính ở London hoặc Vancouver. Nếu $ip
không phải là địa chỉ IP trên mạng 10.x.x.x, thông báo sẽ cho biết rằng địa chỉ đó không nằm trên mạng nội bộ.
Nếu bạn cung cấp nhiều giá trị trong một mảng cho một Switch xây dựng, mỗi mục trong mảng được đánh giá. Trong ví dụ trước, nếu biến $ip
là một mảng với hai địa chỉ IP, thì cả hai địa chỉ IP sẽ được xử lý. Hành động thích hợp cho mỗi khoản mục trong mảng sẽ được thực hiện.