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

ตัวดำเนินการเปรียบเทียบใน PowerShell | ประเภทของตัวดำเนินการเปรียบเทียบ


ข้อมูลเบื้องต้นเกี่ยวกับตัวดำเนินการเปรียบเทียบใน PowerShell

ในบทความนี้ เราจะดูรายละเอียดของตัวดำเนินการเปรียบเทียบต่างๆ ใน PowerShell ตัวดำเนินการเปรียบเทียบใช้ในการเปรียบเทียบ ค้นหา และแก้ไขค่าตั้งแต่สองค่าขึ้นไป คุณยังสามารถใช้ตัวดำเนินการเปรียบเทียบในเงื่อนไขเพื่อจับคู่และเปรียบเทียบค่าได้

ตัวดำเนินการเปรียบเทียบ

Windows PowerShell ใช้ตัวดำเนินการเปรียบเทียบด้านล่าง และตามค่าเริ่มต้นจะไม่คำนึงถึงขนาดตัวพิมพ์ หากต้องการดำเนินการตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ เพียงพิมพ์ 'c' นำหน้าตัวดำเนินการด้านล่าง ตัวอย่างเช่น -clike, -cne, -ceq เป็นต้น

-eq

เท่ากัน

-ne

ไม่เท่ากัน

-gt

มากกว่า

-ge

มากกว่าหรือเท่ากับ

-lt

น้อยกว่า

-le

น้อยกว่าหรือเท่ากับ

-like

ตรวจสอบว่าส่วนหนึ่งของสตริงตรงกันหรือไม่ (การเปรียบเทียบไวด์การ์ด)

-notlike

ตรวจสอบว่าส่วนหนึ่งของสตริงไม่ตรงกันหรือไม่ (การเปรียบเทียบไวลด์การ์ด)

-match

การเปรียบเทียบ RegEx

-notmatch

การเปรียบเทียบ RegEx

-contains

ผู้ดำเนินการบรรจุ

-notcontains

ผู้ดำเนินการที่ไม่กักกัน

-In

ในโอเปอเรเตอร์

-notIn

ไม่อยู่ในตัวดำเนินการ

-Replace

แทนที่รูปแบบสตริง

ตัวอย่างการใช้งานตัวดำเนินการเปรียบเทียบ

นี่คือตัวอย่างบางส่วนของตัวดำเนินการเปรียบเทียบที่ระบุด้านล่างพร้อมตัวอย่าง:

1. -eq: เท่ากับ

โอเปอเรเตอร์นี้ใช้เพื่อตรวจสอบความเท่าเทียมกันระหว่างค่า ควรตรงกันทุกประการและไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ผลลัพธ์จะเป็น True หรือ False ตัวอย่างเช่น,

คุณยังสามารถเปรียบเทียบข้อมูลสองประเภทที่แตกต่างกันได้

คุณสามารถเปรียบเทียบหลายค่ากับค่าเดียวได้เช่นกัน

หากคุณใช้ตัวดำเนินการ -ceq การเปรียบเทียบจะคำนึงถึงขนาดตัวพิมพ์

2. -ne: ไม่เท่ากับ

สิ่งนี้ตรงกันข้ามกับเท่ากับการดำเนินการ หากค่าตรงกันจะส่งคืนค่า FALSE มิฉะนั้นจะส่งคืนค่า TRUE

สำหรับหลายค่า

3.-gt: มากกว่า

โดยจะเปรียบเทียบค่าของด้านซ้ายกับด้านขวา และเอาต์พุตจะเป็น TRUE หรือ FALSE ตามค่า ในตัวอย่างด้านล่าง จะเปรียบเทียบ 5 กับ 6 และตรวจสอบว่ามากกว่า 6 และให้คำตอบ FALSE

เมื่อคุณเปรียบเทียบอักขระสองตัว ระบบจะตรวจสอบค่า ASCII และให้ผลลัพธ์ตามค่านั้น ค่า ASCII ของ 'a' คือ 97 และ 'c' คือ 99 ดังนั้น 'c' จึงมากกว่า 'a' ดังนั้นประโยคที่สองจึงเป็น TRUE

หากคุณเปรียบเทียบอักขระหลายตัวเข้าด้วยกัน ระบบจะตรวจสอบค่า ASCII ของอักขระตัวแรกทั้งสองด้านและให้ผลลัพธ์ตามนั้น ตัวอย่างเช่น,

ในประโยคแรกข้างต้น ค่า ASCII ของ 'd' มากกว่า 'a' และในประโยคที่สอง ค่า ASCII ของ 'a น้อยกว่า 'b' สำหรับการเปรียบเทียบค่าหลายค่า

4. -ge: มากกว่าเท่ากับ

ตรวจสอบว่าค่าของด้านซ้ายมากกว่าหรือเท่ากับค่าของด้านขวาหรือไม่

5. -lt: น้อยกว่า

ตรวจสอบว่าค่าด้านซ้ายน้อยกว่าค่าด้านขวาหรือไม่

6. -le: น้อยกว่าหรือเท่ากับ

ตรวจสอบว่าค่าของด้านซ้ายน้อยกว่าเท่ากับค่าของด้านขวาหรือไม่

7.-ชอบ

โดยจะจับคู่ด้านซ้ายของค่ากับค่าด้านขวาด้วยอักขระตัวแทน (*)

อักขระตัวแทน (*) เมื่อนำไปใช้จะตรวจสอบว่าส่วนต่างๆ มีอยู่ในสตริงหรือไม่ หากใช้หลังค่าเฉพาะ (เช่น นี่*) ระบบจะตรวจสอบว่าคำนั้น + สตริงที่สืบทอดอยู่หรือไม่ ในตัวอย่างแรก

  • คำ: นี้
  • สตริงตัวตายตัวแทน: คือ Powershell

หากใช้หน้าคำใดคำหนึ่ง ระบบจะตรวจสอบว่ามีคำใดคำหนึ่ง + สตริงที่อยู่นำหน้าอยู่หรือไม่ ในตัวอย่างที่สอง

  • คำค้น: พาวเวอร์เชลล์
  • สตริงแบบอย่าง: นี่คือ

ในตัวอย่างที่สาม จะใช้ไวด์การ์ด (*) หลังคำว่า "Powershell " และคำตรงกัน แต่ไม่มีสตริงที่สืบทอด ดังนั้นเอาต์พุตจึงเป็นเท็จ ในตัวอย่างที่สี่ มีการใช้ไวด์การ์ด (*) ทั้งสองด้าน เพื่อตรวจสอบว่ามีสตริงอยู่ก่อนหรือหลังสตริงนั้น หรืออีกนัยหนึ่งคือคำที่กล่าวถึงเป็นส่วนหนึ่งของสตริงนั้น ดังนั้นผลลัพธ์ที่นี่จึงเป็น TRUE

8.-ไม่ชอบ

มันตรงกันข้ามกับตัวดำเนินการ Like แต่คำจำกัดความยังคงเหมือนเดิมสำหรับไวด์การ์ด และมีเพียงเอาต์พุตเท่านั้นที่จะกลับรายการ

9. -การแข่งขัน

มันจับคู่สตริงโดยใช้นิพจน์ทั่วไป เมื่ออินพุตเป็นสเกลาร์ มันจะเติมตัวแปร $matches โดยอัตโนมัติ

$การแข่งขัน

ชื่อ ค่า

-

0 กำลังมา

หากต้องการจับคู่อักขระอย่างน้อยหนึ่งตัว ให้ใส่ไว้ใน [ ]

ในตัวอย่างข้างต้น อักขระ 'c' กำลังตรงกัน เพื่อจับคู่อักขระอย่างน้อยหนึ่งตัวในช่วง [ช่วง] ที่ต่อเนื่องกัน

ในที่นี้ ตั้งแต่อักขระ n ถึง r [ไม่คำนึงถึงขนาดตัวพิมพ์] จะถูกตรวจสอบกับสตริงและจับคู่ 'o' และ 'p' ดังนั้นผลลัพธ์จึงเป็น TRUE

10. -ไม่ตรงกัน

ตรงกันข้ามกับตัวดำเนินการจับคู่ หากพบการจับคู่ จะส่งคืนค่าเท็จหรือในทางกลับกัน

ชื่อ ค่า

-

0 กำลังมา

11. -ประกอบด้วย: ผู้ดำเนินการกักกัน

บอกว่าชุดของค่าอ้างอิงมีค่าเดียว (ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) หรือไม่ ถ้าใช่ก็จะคืนค่า TRUE มิฉะนั้นจะคืนค่า FALSE

ไวยากรณ์:

<Reference-values> -Contains <Test-value>

ผลลัพธ์ข้างต้นเป็น FALSE เนื่องจากด้านซ้ายมีสองค่า แต่ถ้าคุณเก็บมันไว้ในตัวแปรและจับคู่มัน ผลลัพธ์จะเป็น TRUE

สำหรับการดำเนินการแบบคำนึงถึงขนาดตัวพิมพ์ ให้ใช้ -ccontains โอเปอเรเตอร์

12. -notContains: ตัวดำเนินการบรรจุ (ตรงกันข้ามกับบรรจุ)

หากค่าทดสอบตรงกับชุดของค่าอ้างอิงทุกประการ เอาต์พุตจะเป็น FALSE มิฉะนั้น ผลลัพธ์จะเป็น TRUE

13.-นิ้ว

คล้ายกับตัวดำเนินการบรรจุ เฉพาะไวยากรณ์เท่านั้นที่จะกลับรายการ -ในตัวดำเนินการได้รับการแนะนำใน Powershell 3.0 หากค่าทดสอบตรงกับค่าอ้างอิง จะส่งคืนค่า TRUE มิฉะนั้นจะเป็น FALSE

ไวยากรณ์:

<Test-value> -in <Reference-values>

ในตัวอย่างข้างต้น “Shell ” ไม่ตรงกับ Powershell ทุกประการ

14. -notin: ไม่ได้อยู่ในตัวดำเนินการ (ตรงกันข้ามกับตัวดำเนินการ -in)

หากค่าทดสอบตรงกับค่าอ้างอิงทุกประการ จะส่งคืนค่า FALSE มิฉะนั้นจะเป็น TRUE

15. -แทนที่: เปลี่ยนค่าที่ระบุ

ไวยากรณ์:

<String> -replace <Old value>,<New Value>

เพื่อแทนที่ค่าในตัวแปร

16. ผู้ประกอบการอื่นที่คล้ายคลึงกัน

มีตัวดำเนินการอื่นที่คล้ายคลึงกันตามที่ระบุไว้ด้านล่าง

ก. ตัวดำเนินการ Bitwise

-bAnd

ระดับบิตและ

-bOr

Bitwise หรือ (รวม)

-bXor

Bitwise หรือ (พิเศษ)

-bNot

ระดับบิตไม่

-shl

Shift-Left

-shr

Shift-Right

<แข็งแกร่ง>2. ตัวดำเนินการเชิงตรรกะ

-and

ตรรกะและ

-or

ตรรกะหรือ

-xor

ตรรกะพิเศษหรือ

-not

ตรรกะไม่

!

ตรรกะไม่

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