ค้นหาเว็บไซต์

คำสั่งสวิตช์ 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 พร้อมตัวอย่างจริง

บทความที่เกี่ยวข้อง