PowerShell โดยที่วัตถุ | สองวิธีในการสร้าง PowerShell Where Object
ข้อมูลเบื้องต้นเกี่ยวกับ PowerShell โดยที่ Object
Where-Object ช่วยให้เราสามารถเลือกหรือรับออบเจ็กต์ ไฟล์ กระบวนการ บริการ ฯลฯ เฉพาะเจาะจง บนพื้นฐานของคุณสมบัติบางอย่างของออบเจ็กต์ ไฟล์ กระบวนการ บริการ คุณสมบัติเหล่านี้อาจเป็นขนาด ชื่อ วันที่ ฯลฯ ผมขอยกตัวอย่าง สมมติว่าคุณมีโฟลเดอร์ที่มีไฟล์ 1,000 ไฟล์ และคุณต้องการทำงานบางอย่างกับไฟล์ที่สร้างขึ้นล่าสุดหรือไฟล์ที่ถูกสร้างขึ้นก่อน ดังนั้นเราจึงสามารถเลือกวันที่ของไฟล์ได้อย่างชาญฉลาด อีกตัวอย่างหนึ่ง สมมติว่าเราต้องการเลือกไฟล์ที่ใหญ่ที่สุดในบรรดาไฟล์ทั้งหมด เพื่อที่เราจะได้กำหนดเงื่อนไขสำหรับขนาดของไฟล์ได้ นอกจากนี้เรายังสามารถเขียนเงื่อนไขในการรับข้อมูลเกี่ยวกับบริการ แพ็คเกจ กระบวนการ ฯลฯ ในหัวข้อนี้ เราจะเรียนรู้เกี่ยวกับ PowerShell Where-Object
จะสร้างคำสั่ง Where Object ใน Powershell ได้อย่างไร
มีสองวิธีหลักในการสร้างคำสั่ง Where-Object ดังที่แสดงด้านล่าง
1. บล็อกสคริปต์
เราสามารถใช้ Script block เพื่อกำหนดชื่อคุณสมบัติ ตัวดำเนินการเปรียบเทียบ และค่าคุณสมบัติ คำสั่งwhere-objectจะตรวจสอบและส่งคืนวัตถุที่บล็อกเป็นจริง
Get-Process | Where-Object {comparison condition}2. ข้อความเปรียบเทียบ
ด้วยวิธีนี้ เราสามารถใช้การเปรียบเทียบได้โดยตรงเหมือนกับที่เราใช้โปรแกรมปกติทั่วไป
Get-Process | Where-Object condition
ไวยากรณ์:
วิธีง่ายๆ ในการรับไวยากรณ์และพารามิเตอร์ทั้งหมดคือการรันคำสั่งด้านล่าง ไวยากรณ์ที่ระบุด้านล่างทั้งหมดจะถูกใช้ในสถานการณ์ประเภทต่างๆ เราจะหารือบางส่วนของพวกเขา
Get-Help Where-Object -fullWhere-Object [-Property] <Property like date,size etc> [[-Value] <Object>] [-InputObject <psobject>] [-EQ] [<CommonParameters>]Where-Object [-FilterScript] <Here we write script containing conditions> [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -GE [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CEQ [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -NE [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CNE [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -GT [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CGT [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -LT [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CLT [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CGE [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -LE [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CLE [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -Like [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CLike [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -NotLike [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CNotLike [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -Match [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CMatch [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -NotMatch [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CNotMatch [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -Contains [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CContains [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -NotContains [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CNotContains [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -In [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CIn [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -NotIn [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -CNotIn [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -Is [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> [[-Value] <Object>] -IsNot [-InputObject <psobject>] [<CommonParameters>]Where-Object [-Property] <Property like date,size etc> -Not [-InputObject <psobject>] [<CommonParameters>]พารามิเตอร์ของ PowerShell โดยที่วัตถุ
นี่คือพารามิเตอร์ที่แสดงด้านล่าง
1. CContains: จะตรวจสอบว่าการจับคู่แบบตรงทั้งหมดหรือไม่ ซึ่งหมายความว่าจะส่งคืนออบเจ็กต์ก็ต่อเมื่อการจับคู่ออบเจ็กต์แบบตรงทั้งหมดจะทำงานได้
ไวยากรณ์ทั่วไปของมันได้รับด้านล่าง
Get-Process | where servicename/processname/etc -CContains "exact matching name<แข็งแกร่ง>2. CEQ: หากค่าคุณสมบัติเดียวกันเท่ากัน ก็จะมีเฉพาะออบเจ็กต์เท่านั้นที่ได้รับ
<แข็งแกร่ง>3. CGE: หากค่าคุณสมบัติมากกว่าหรือเท่ากับค่าที่ส่ง จะมีเพียงอ็อบเจ็กต์เท่านั้นที่ได้รับ
<แข็งแกร่ง>4. CGT: หากค่าคุณสมบัติมากกว่าค่าที่ส่ง จะมีเพียงค่าที่ได้รับออบเจ็กต์เท่านั้น โปรดจำไว้ว่าเงื่อนไขนี้จะพิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ทั้งหมด
<แข็งแกร่ง>5. CIn: สิ่งนี้จะตรวจสอบการรวม นั่นคือถ้าค่าคุณสมบัติรวมก็จะได้รับออบเจ็กต์
<แข็งแกร่ง>6. CLE: จะตรวจสอบค่าที่น้อยกว่าหรือเท่ากับค่าที่ส่ง
<แข็งแกร่ง>7. CLT: จะตรวจสอบค่าที่น้อยกว่าค่าที่ส่งผ่าน
<แข็งแกร่ง>8. คลิก: การดำเนินการนี้จะตรวจสอบค่าคุณสมบัติการจับคู่ และยังรวมถึงไวด์การ์ดด้วย นอกจากนี้ การดำเนินการนี้จะคำนึงถึงขนาดตัวพิมพ์ด้วย
<แข็งแกร่ง>9. CMatch: คุณสมบัตินี้ขึ้นอยู่กับนิพจน์ทั่วไป ดังนั้นในเงื่อนไขที่เราสามารถตรวจสอบด้วยนิพจน์ทั่วไปบางตัวได้
10. CNE: คำสั่งนี้จะใช้กับเงื่อนไข Where หากเราพยายามค้นหาค่าที่แตกต่างจากนั้นส่งผ่าน
11. CNotContains: จะได้รับออบเจ็กต์ในกรณีที่ค่าคุณสมบัติไม่ตรงกับค่าที่ส่งทุกประการ เงื่อนไขคำสั่งนี้จะคำนึงถึงขนาดตัวพิมพ์
ตัวอย่าง
นี่คือตัวอย่างการใช้งาน PowerShell Where Object ที่กล่าวถึงด้านล่าง
ตัวอย่าง #1
ในตัวอย่างด้านล่าง เรากำลังตรวจสอบบริการที่มีชื่อ "nginx" ตรงกันทุกประการ มันจะส่งคืนบริการที่ทำงานอยู่ทั้งหมดด้วยชื่อ nginx โปรดดูตัวอย่างพร้อมกับหน้าจอด้านล่าง
Get-Process | where ProcessName -CContains "nginx"ตัวอย่าง #2
ในคำสั่งนี้ เราใช้ -eq เพื่อรับแพ็คเกจที่ตรงกันทั้งหมดที่มีเวอร์ชันเฉพาะ ขั้นแรก เราจะแสดงเวอร์ชันทั้งหมดโดยการรันคำสั่ง Get-PackageProvider และมากกว่าที่เราค้นหาเวอร์ชันเฉพาะโดยข้ามเวอร์ชันที่แน่นอนในบล็อกสคริปต์
Get-PackageProvider
Get-PackageProvider | Where-Object {$_.Version -eq "3.0.0.1"}
Get-PackageProvider | Where-Object {$_.Version -eq "2.1.3.0"}ตัวอย่าง #3
ในตัวอย่างนี้ เราต้องการทราบกระบวนการที่ทำงานอยู่ทั้งหมดที่มีชื่อขึ้นต้นด้วย “n” ในผลลัพธ์เราจะเห็นว่ามันกำลังแสดง "node nginx networkmanager netns, etc" คุณสามารถลองบนระบบของคุณเอง คุณจะได้ผลลัพธ์ที่แตกต่างกันตามกระบวนการที่ทำงานอยู่บนระบบของคุณด้วยชื่อที่ขึ้นต้นด้วย "n" ตัวอย่าง Where-object นี้กำลังบล็อกประเภทสคริปต์
Get-Process | Where-Object {$_.ProcessName -Match "^n.*"}ตัวอย่าง #4
ตามที่เราได้พูดคุยกันในช่วงเวลาของการแนะนำว่ามี Where-Object อยู่สองประเภท ประเภทหนึ่งคือบล็อกสคริปต์และอีกประเภทหนึ่งคือคาปาริสัน ในตัวอย่างที่ 3 เราพูดถึงบล็อคสคริปต์ ในตัวอย่างนี้ เรากำลังทำความเข้าใจบล็อคคำสั่ง caparison
Get-Process | Where-Object ProcessName -Match "^n.*"บทสรุป
Where-Object ใช้สำหรับดึงออบเจ็กต์ ไฟล์ กระบวนการ บริการ ฯลฯ ตามเงื่อนไขบางประการ เงื่อนไขเหล่านี้อาจเป็นคุณสมบัติ ชื่อ ขนาด หรือวันที่ของออบเจ็กต์ ไฟล์ กระบวนการ บริการ





