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

PowerShell: วิธีใช้ Where-Object ในรายการ


บ่อยครั้งคุณอาจต้องการใช้ Where-Object cmdlet ใน PowerShell เพื่อกรองออบเจ็กต์ให้มีเฉพาะรายการที่อยู่ในรายการที่ระบุ

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

Import-Csv $my_file | Where-Object { $_.team -in $specific_teams}

ตัวอย่างนี้จะนำเข้าไฟล์ CSV ที่อยู่ในเส้นทางที่ระบุโดย $my_file จากนั้นกรองไฟล์เพื่อแสดงเฉพาะแถวที่มีค่าในคอลัมน์ ทีม อยู่ในรายการ ระบุโดย $special_teams

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

ตัวอย่าง: วิธีใช้ Where-Object ในรายการใน PowerShell

สมมติว่าเรามีไฟล์ CSV ที่บันทึกไว้ในตำแหน่งต่อไปนี้:

c:\users\bobbi\nba_data.csv

สมมติว่าเราใช้ Import-Csv cmdlet เพื่อดูเนื้อหาของไฟล์ทั้งหมดนี้:

ไฟล์ประกอบด้วยสามคอลัมน์ที่แสดง ทีม, คะแนน และ แอสซิสต์ สำหรับผู้เล่นบาสเกตบอลต่างๆ

สมมติว่าเราต้องการนำเข้าเฉพาะแถวที่มีสตริงในคอลัมน์ ทีม อยู่ในรายการต่อไปนี้:

  • แมฟ
  • เหยี่ยว
  • ราชา
  • จรวด

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

$my_file = "c:\users\bobbi\nba_data.csv"
$specific_teams = @("Mavs", "Hawks", "Kings", "Rockets")

Import-Csv $my_file | Where-Object { $_.team -in $specific_teams}

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

โปรดสังเกตว่าเฉพาะแถวที่มีชื่อทีมใดชื่อหนึ่งที่ระบุใน $special_teams เท่านั้นที่จะรวมอยู่ในเอาต์พุต

หมายเหตุ: หากต้องการยกเว้นแถวที่มีชื่อทีมเฉพาะ เพียงแทนที่ตัวดำเนินการ -in ด้วยตัวดำเนินการ -notin แทน

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