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

PowerShell: ใช้คำสั่ง Switch ที่มากกว่า/น้อยกว่า


บ่อยครั้งคุณอาจต้องการใช้คำสั่ง switch ใน PowerShell ที่มีเงื่อนไขมากกว่าหรือน้อยกว่าเพื่อส่งกลับค่าเฉพาะตามช่วงตัวเลข

คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้ได้:

switch($points) {
    {$_ -lt 10} { "Bad" }
    {$_ -in 10..15 } { "OK" }
    {$_ -in 16..20 } { "Good" }
    {$_ -gt 20 } { "Great" }
}

ตัวอย่างนี้จะพิจารณาค่าในตัวแปร $points และดำเนินการดังต่อไปนี้:

  • ส่งกลับค่า “ไม่ดี” หากคะแนนน้อยกว่า 10
  • ส่งกลับค่า “ตกลง” หากคะแนนอยู่ระหว่าง 10 ถึง 15
  • ส่งกลับค่า "ดี" หากคะแนนอยู่ระหว่าง 16 ถึง 20
  • ส่งคืน "ยอดเยี่ยม" หากคะแนนมากกว่า 20

ด้วยการใช้ตัวดำเนินการ -lt, -in และ -gt เราจะสามารถตรวจสอบได้ว่าตัวเลขที่กำหนดน้อยกว่าในช่วงหรือไม่ หรือมากกว่าค่าเฉพาะตามลำดับ

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: วิธีใช้คำสั่ง Switch ที่มากกว่า/น้อยกว่าใน PowerShell

สมมติว่าเรามีตัวแปรชื่อ $points ซึ่งมีจำนวนคะแนนที่นักบาสเกตบอลคนใดคนหนึ่งทำได้

สมมติว่าเราต้องการใช้คำสั่ง switch ใน PowerShell เพื่อจัดประเภทเครื่องเล่นให้เป็นหนึ่งในสี่หมวดหมู่ตามตรรกะต่อไปนี้:

  • “แย่” หากพวกเขาได้คะแนนน้อยกว่า 10 คะแนน
  • “ตกลง” หากพวกเขาได้คะแนนระหว่าง 10 ถึง 15 คะแนน
  • “ดี” หากพวกเขาได้คะแนนระหว่าง 16 ถึง 20 คะแนน
  • “ยอดเยี่ยม” หากพวกเขาทำคะแนนได้มากกว่า 20 คะแนน

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อดำเนินการดังกล่าว:

$points = 20

switch($points) {
    {$_ -lt 10} { "Bad" }
    {$_ -in 10..15 } { "OK" }
    {$_ -in 16..20 } { "Good" }
    {$_ -gt 20 } { "Great" }
}

ภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:

คำสั่ง switch ส่งคืน "Good" เนื่องจากตัวแปร $points มีค่าระหว่าง 16 และ 20.

สมมติว่าเราเปลี่ยนค่าของตัวแปร $points ให้เป็น 7 แทน:

คำสั่ง switch ส่งคืน "Bad" เนื่องจากตัวแปร $points มีค่าน้อยกว่า 10

หมายเหตุ #1: ในตัวอย่างนี้ เราใช้ -lt และ -gt เพื่อทดสอบ “น้อยกว่า” หรือ “มากกว่า” แต่คุณสามารถใช้ -lte และ -gte เพื่อทดสอบคำว่า “น้อยกว่าหรือเท่ากับ” หรือ “มากกว่าหรือเท่ากับ” แทน .

หมายเหตุ #2: คุณสามารถดูเอกสารฉบับสมบูรณ์สำหรับคำสั่ง switch ใน PowerShell ได้ที่นี่

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