คำสั่งสวิตช์ PowerShell ที่มีเงื่อนไขมากกว่า
วันนี้ผมจะอธิบายคำสั่งสวิตช์ PowerShell ด้วยเงื่อนไขที่มากกว่า ในฐานะนักพัฒนา PowerShell คุณอาจพบสถานการณ์นี้ ฉันจะอธิบายทุกอย่างเกี่ยวกับ “สวิตช์ PowerShell มากกว่า” พร้อมตัวอย่าง
คำสั่ง switch ของ PowerShell ช่วยให้สามารถใช้ตรรกะแบบมีเงื่อนไขที่กระชับได้โดยการประเมินตัวแปรเทียบกับหลายเงื่อนไข การใช้เงื่อนไขที่มากกว่าจะทำให้คุณสามารถจัดหมวดหมู่ค่าได้อย่างมีประสิทธิภาพ ตัวอย่างเช่น หากต้องการจัดหมวดหมู่อายุ คุณสามารถใช้:
switch ($age) {
{$_ -gt 0 -and $_ -le 18} { "Minor" }
{$_ -gt 18 -and $_ -le 35} { "Young Adult" }
{$_ -gt 35 -and $_ -le 50} { "Adult" }
{$_ -gt 50} { "Senior" }
}มากกว่าเงื่อนไขในคำสั่ง PowerShell Switch
คำสั่ง switch ใน PowerShell เป็นคำสั่งควบคุมโฟลว์ที่ช่วยให้คุณสามารถเปรียบเทียบค่ากับเงื่อนไขต่างๆ ได้ คล้ายกับชุดคำสั่ง if แต่จะกระชับและอ่านง่ายกว่า คำสั่ง switch จะประเมินแต่ละเงื่อนไขตามลำดับและดำเนินการบล็อกโค้ดที่สอดคล้องกันสำหรับเงื่อนไขแรกที่ตรงกัน
ต่อไปนี้เป็นไวยากรณ์พื้นฐานของคำสั่ง switch ใน PowerShell:
switch ($variable) {
condition1 { scriptblock1 }
condition2 { scriptblock2 }
default { scriptblockDefault }
}เมื่อใช้เงื่อนไขที่มากกว่า คุณสามารถแก้ไขไวยากรณ์เพื่อรวมตัวดำเนินการเปรียบเทียบได้:
switch ($variable) {
{$_ -gt value1} { scriptblock1 }
{$_ -gt value2} { scriptblock2 }
default { scriptblockDefault }
}
ตอนนี้ ฉันจะแสดงตัวอย่างวิธีใช้เงื่อนไขที่มากกว่าในคำสั่ง switch ใน PowerShell
ตัวอย่างที่ 1: จัดหมวดหมู่กลุ่มอายุ
สมมติว่าเรามีรายการอายุและต้องการจัดหมวดหมู่ออกเป็นกลุ่มอายุต่างๆ ต่อไปนี้เป็นวิธีที่เราสามารถทำได้โดยใช้คำสั่ง switch ที่มีเงื่อนไข gt:
$ages = 18, 25, 32, 45, 60
foreach ($age in $ages) {
switch ($age) {
{$_ -gt 0 -and $_ -le 18} { "Age $($age): Minor" }
{$_ -gt 18 -and $_ -le 35} { "Age $($age): Young Adult" }
{$_ -gt 35 -and $_ -le 50} { "Age $($age): Adult" }
{$_ -gt 50} { "Age $($age): Senior" }
default { "Age $($age): Unknown category" }
}
}ในตัวอย่างนี้ เราจัดหมวดหมู่อายุเป็นผู้เยาว์ คนหนุ่มสาว ผู้ใหญ่ และผู้อาวุโสตามค่านิยมของพวกเขา
คุณสามารถดูผลลัพธ์ที่แน่นอนได้ในภาพหน้าจอด้านล่าง ฉันรันสคริปต์ด้านบนโดยใช้รหัส VS
ตรวจสอบสตริงสวิตช์ PowerShell ประกอบด้วย
ตัวอย่างที่ 2: กำหนดวงเล็บเงินเดือน
พิจารณาสถานการณ์ที่เราจำเป็นต้องกำหนดช่วงเงินเดือนสำหรับพนักงานในบริษัทที่ตั้งอยู่ในสหรัฐอเมริกา ต่อไปนี้คือวิธีที่เราสามารถใช้คำสั่ง switch ที่มีเงื่อนไขมากกว่าได้
$salaries = 45000, 60000, 75000, 90000, 120000
foreach ($salary in $salaries) {
switch ($salary) {
{$_ -gt 0 -and $_ -le 50000} { "Salary $($salary): Entry Level" }
{$_ -gt 50000 -and $_ -le 75000} { "Salary $($salary): Mid Level" }
{$_ -gt 75000 -and $_ -le 100000} { "Salary $($salary): Senior Level" }
{$_ -gt 100000} { "Salary $($salary): Executive Level" }
default { "Salary $($salary): Unknown bracket" }
}
}สคริปต์นี้จัดหมวดหมู่เงินเดือนเป็นวงเล็บระดับเริ่มต้น ระดับกลาง ระดับอาวุโส และระดับผู้บริหาร
นี่คือผลลัพธ์ในภาพหน้าจอด้านล่าง:
อ่านเคสสวิตช์ PowerShell ด้วย Regex
ตัวอย่างที่ 3: ประเมินเกรด
ฉันขอแสดงอีกตัวอย่างหนึ่งของ “สวิตช์ PowerShell มากกว่า” นี่คือสคริปต์ PowerShell ที่สมบูรณ์
$students = @(
@{ Name = "John"; Score = 85 },
@{ Name = "Lisa"; Score = 92 },
@{ Name = "Michael"; Score = 78 },
@{ Name = "Sarah"; Score = 88 }
)
foreach ($student in $students) {
switch ($student.Score) {
{$_ -gt 90} { "$($student.Name): Grade A" }
{$_ -gt 80} { "$($student.Name): Grade B" }
{$_ -gt 70} { "$($student.Name): Grade C" }
{$_ -gt 60} { "$($student.Name): Grade D" }
default { "$($student.Name): Grade F" }
}
}สคริปต์นี้จะประเมินคะแนนของนักเรียนแต่ละคนและให้คะแนนตามนั้น คุณสามารถดูผลลัพธ์ได้ในภาพหน้าจอด้านล่าง:
บทสรุป
คำสั่ง PowerShell switch ที่มีมากกว่าเงื่อนไข มีประโยชน์มาก ในบทช่วยสอนนี้ ฉันอธิบายวิธีใช้เงื่อนไขที่มากกว่าในคำสั่งสวิตช์ PowerShell พร้อมตัวอย่างจริง


