Powershell - คู่มือฉบับย่อ

Windows PowerShell คือไฟล์ command-line shell และ scripting languageออกแบบมาโดยเฉพาะสำหรับการดูแลระบบ อะนาล็อกใน Linux เรียกว่า Bash Scripting Windows PowerShell สร้างขึ้นบน. NET Framework ช่วยให้ผู้เชี่ยวชาญด้านไอทีสามารถควบคุมและดำเนินการบริหารระบบปฏิบัติการ Windows และแอปพลิเคชันที่ทำงานบนสภาพแวดล้อม Windows Server โดยอัตโนมัติ

คำสั่ง Windows PowerShell เรียกว่า cmdletsให้คุณจัดการคอมพิวเตอร์จากบรรทัดคำสั่ง ผู้ให้บริการ Windows PowerShell ช่วยให้คุณเข้าถึงที่เก็บข้อมูลเช่น Registry และ Certificate Store ได้อย่างง่ายดายเช่นเดียวกับที่คุณเข้าถึงระบบไฟล์

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

PowerShell ISE

Windows PowerShell Integrated Scripting Environment(ISE) เป็นแอปพลิเคชันโฮสต์สำหรับ Windows PowerShell ใน Windows PowerShell ISE คุณสามารถเรียกใช้คำสั่งและเขียนทดสอบและดีบักสคริปต์ในอินเทอร์เฟซผู้ใช้แบบกราฟิกบน Windows เดียวพร้อมการแก้ไขหลายบรรทัดการทำให้แท็บเสร็จสมบูรณ์การลงสีไวยากรณ์การดำเนินการที่เลือกวิธีใช้ตามบริบทและการสนับสนุนขวาไป - ภาษาด้านซ้าย

คุณสามารถใช้รายการเมนูและแป้นพิมพ์ลัดเพื่อทำงานหลายอย่างเช่นเดียวกับที่คุณทำในคอนโซล Windows PowerShell ตัวอย่างเช่นเมื่อคุณดีบักสคริปต์ใน Windows PowerShell ISE เมื่อต้องการตั้งค่าจุดพักบรรทัดในสคริปต์ให้คลิกขวาที่บรรทัดของโค้ดจากนั้นคลิกToggle Breakpoint.

คำสั่งพื้นฐานของ PowerShell

มีคำสั่ง PowerShell จำนวนมากและเป็นการยากมากที่จะใส่คำสั่งเหล่านี้ในบทช่วยสอนนี้เราจะเน้นไปที่คำสั่งที่สำคัญที่สุดและคำสั่งพื้นฐานของ PowerShell

ขั้นตอนแรกคือไปที่คำสั่ง Get-Help ซึ่งจะให้คำอธิบายเกี่ยวกับวิธีการให้คำสั่งและพารามิเตอร์

ไอคอน PowerShell อยู่ในแถบงานและในเมนูเริ่ม เพียงแค่คลิกที่ไอคอนก็จะเปิดขึ้น

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

เวอร์ชัน PowerShell

PowerShell เวอร์ชันล่าสุดคือ 5.0 และเพื่อตรวจสอบสิ่งที่ติดตั้งในเซิร์ฟเวอร์ของเราเราพิมพ์คำสั่งต่อไปนี้ - :$PSVersionTable ดังที่แสดงในภาพหน้าจอต่อไปนี้และจากหน้าจอเราทราบด้วยว่าเรามี PSVersion 4.0

หากต้องการอัปเดตเป็นเวอร์ชันล่าสุดที่มี Cmdlets เพิ่มเติมเราต้องดาวน์โหลด Windows Management Framework 5.0 จากลิงค์ต่อไปนี้ - https://www.microsoft.com/en-us/download/details.aspx?id=50395 และติดตั้ง

PowerShell ISE

Windows PowerShell Integrated Scripting Environment(ISE) เป็นแอปพลิเคชันโฮสต์สำหรับ Windows PowerShell ใน Windows PowerShell ISE คุณสามารถเรียกใช้คำสั่งและเขียนทดสอบและดีบักสคริปต์ในอินเทอร์เฟซผู้ใช้แบบกราฟิกบน Windows เดียวพร้อมการแก้ไขหลายบรรทัดการทำให้แท็บเสร็จสมบูรณ์การลงสีไวยากรณ์การดำเนินการที่เลือกวิธีใช้ตามบริบทและการสนับสนุนขวาไป - ภาษาด้านซ้าย

คุณสามารถใช้รายการเมนูและแป้นพิมพ์ลัดเพื่อทำงานหลายอย่างเช่นเดียวกับที่คุณทำในคอนโซล Windows PowerShell ตัวอย่างเช่นเมื่อคุณดีบักสคริปต์ใน Windows PowerShell ISE เมื่อต้องการตั้งค่าจุดพักบรรทัดในสคริปต์ให้คลิกขวาที่บรรทัดของโค้ดจากนั้นคลิกToggle Breakpoint.

หากต้องการเปิดคุณเพียงไปที่เริ่ม - ค้นหาแล้วพิมพ์ - PowerShell ดังที่แสดงในภาพหน้าจอต่อไปนี้

จากนั้นคลิกที่ Windows PowerShell ISE หรือคลิกที่ลูกศรชี้ลงตามที่แสดงในภาพหน้าจอต่อไปนี้

มันจะแสดงรายการแอพพลิเคชั่นทั้งหมดที่ติดตั้งบนเซิร์ฟเวอร์จากนั้นคลิกที่ Windows PowerShell ISE

ตารางต่อไปนี้จะเปิด -

มีสามส่วนซึ่งรวมถึง - PowerShell Console ด้วยหมายเลข 1 แล้ว Scripting File หมายเลข 2 และสามคือ Command Module คุณจะพบโมดูลได้ที่ไหน

ในขณะที่สร้างสคริปต์คุณสามารถเรียกใช้โดยตรงและดูผลลัพธ์ดังตัวอย่างต่อไปนี้ -

คำสั่งพื้นฐานของ PowerShell

มีคำสั่ง PowerShell จำนวนมากและเป็นการยากมากที่จะใส่คำสั่งเหล่านี้ในบทช่วยสอนนี้เราจะเน้นไปที่คำสั่งที่สำคัญที่สุดและคำสั่งพื้นฐานของ PowerShell

ขั้นตอนแรกคือไปที่คำสั่ง Get-Help ซึ่งจะให้คำอธิบายเกี่ยวกับวิธีการให้คำสั่งและพารามิเตอร์

To get the list of Updates -

  • รับโปรแกรมแก้ไขด่วนและการติดตั้งโปรแกรมแก้ไขด่วนดังต่อไปนี้
  • รับโปรแกรมแก้ไขด่วน -id kb2741530

cmdlet หรือ "Command let" เป็นคำสั่งที่ใช้งานง่ายในสภาพแวดล้อม Windows PowerShell รันไทม์ของ Windows PowerShell เรียกใช้ cmdlet เหล่านี้ที่พร้อมท์คำสั่ง คุณสามารถสร้างและเรียกใช้โดยทางโปรแกรมผ่าน Windows PowerShell APIs

Cmdlet vs Command

Cmdlets แตกต่างจากคำสั่งในสภาพแวดล้อม command-shell อื่น ๆ ตามลักษณะต่อไปนี้ -

  • Cmdlets คือวัตถุคลาส. NET Framework และไม่ใช่แค่ปฏิบัติการแบบสแตนด์อะโลนเท่านั้น

  • Cmdlets สามารถสร้างได้อย่างง่ายดายจากโค้ดเพียงไม่กี่สิบบรรทัด

  • การแยกวิเคราะห์การนำเสนอข้อผิดพลาดและการจัดรูปแบบเอาต์พุตไม่ได้รับการจัดการโดย cmdlet ทำได้โดยรันไทม์ Windows PowerShell

  • กระบวนการ Cmdlets ทำงานบนอ็อบเจ็กต์ที่ไม่ได้อยู่บนสตรีมข้อความและอ็อบเจ็กต์สามารถส่งผ่านเป็นเอาต์พุตสำหรับการไปป์ไลน์

  • Cmdlets เป็นแบบเร็กคอร์ดเมื่อประมวลผลทีละอ็อบเจ็กต์

การขอความช่วยเหลือ

ขั้นตอนแรกคือไปที่คำสั่ง Get-Help ซึ่งจะให้คำอธิบายเกี่ยวกับวิธีการให้คำสั่งและพารามิเตอร์

ต่อไปนี้เป็นตัวอย่างของสคริปต์ powershell บนไฟล์และโฟลเดอร์

ซีเนียร์ การทำงานและคำอธิบาย
1 การสร้างโฟลเดอร์

ตัวอย่างสคริปต์เพื่อแสดงวิธีสร้างโฟลเดอร์โดยใช้สคริปต์ PowerShell

2 การสร้างไฟล์

ตัวอย่างสคริปต์เพื่อแสดงวิธีสร้างไฟล์โดยใช้สคริปต์ PowerShell

3 การคัดลอกโฟลเดอร์

ตัวอย่างสคริปต์เพื่อแสดงวิธีการคัดลอกไฟล์โดยใช้สคริปต์ PowerShell

4 การคัดลอกไฟล์

ตัวอย่างสคริปต์เพื่อแสดงวิธีสร้างไฟล์โดยใช้สคริปต์ PowerShell

5 การลบโฟลเดอร์

ตัวอย่างสคริปต์เพื่อแสดงวิธีการลบโฟลเดอร์โดยใช้สคริปต์ PowerShell

6 การลบไฟล์

ตัวอย่างสคริปต์เพื่อแสดงวิธีการลบไฟล์โดยใช้สคริปต์ PowerShell

7 การย้ายโฟลเดอร์

ตัวอย่างสคริปต์เพื่อแสดงวิธีการย้ายโฟลเดอร์โดยใช้สคริปต์ PowerShell

8 การย้ายไฟล์

ตัวอย่างสคริปต์เพื่อแสดงวิธีการย้ายไฟล์โดยใช้สคริปต์ PowerShell

9 เปลี่ยนชื่อโฟลเดอร์

ตัวอย่างสคริปต์เพื่อแสดงวิธีการเปลี่ยนชื่อโฟลเดอร์โดยใช้สคริปต์ PowerShell

10 เปลี่ยนชื่อไฟล์

ตัวอย่างสคริปต์เพื่อแสดงวิธีการเปลี่ยนชื่อไฟล์โดยใช้สคริปต์ PowerShell

11 กำลังดึงรายการ

ตัวอย่างสคริปต์เพื่อแสดงวิธีการดึงข้อมูลรายการโดยใช้สคริปต์ PowerShell

12 ตรวจสอบการมีอยู่ของโฟลเดอร์

ตัวอย่างสคริปต์เพื่อแสดงวิธีตรวจสอบการมีอยู่ของโฟลเดอร์โดยใช้สคริปต์ PowerShell

13 ตรวจสอบการมีอยู่ของไฟล์

ตัวอย่างสคริปต์เพื่อแสดงวิธีตรวจสอบการมีอยู่ของไฟล์โดยใช้สคริปต์ PowerShell

ต่อไปนี้เป็นตัวอย่างของสคริปต์ powershell ในวันที่และเวลาของระบบ

ซีเนียร์ การทำงานและคำอธิบาย
1 รับวันที่ของระบบ

ตัวอย่างสคริปต์เพื่อแสดงวิธีรับวันที่ของระบบโดยใช้สคริปต์ PowerShell

2 ตั้งวันที่ของระบบ

ตัวอย่างสคริปต์เพื่อแสดงวิธีตั้งวันที่ของระบบโดยใช้สคริปต์ PowerShell

3 รับเวลาของระบบ

ตัวอย่างสคริปต์เพื่อแสดงวิธีรับเวลาของระบบโดยใช้สคริปต์ PowerShell

4 ตั้งเวลาระบบ

ตัวอย่างสคริปต์เพื่อแสดงวิธีตั้งเวลาระบบโดยใช้สคริปต์ PowerShell

ต่อไปนี้เป็นตัวอย่างสคริปต์ powershell ในการสร้างและอ่านไฟล์ประเภทต่างๆ

ซีเนียร์ การทำงานและคำอธิบาย
1 สร้างไฟล์ข้อความ

ตัวอย่างสคริปต์เพื่อแสดงวิธีสร้างไฟล์ข้อความโดยใช้สคริปต์ PowerShell

2 อ่านไฟล์ข้อความ

ตัวอย่างสคริปต์เพื่อแสดงวิธีการอ่านไฟล์ข้อความโดยใช้สคริปต์ PowerShell

3 สร้างไฟล์ XML

ตัวอย่างสคริปต์เพื่อแสดงวิธีสร้างไฟล์ XML โดยใช้สคริปต์ PowerShell

4 อ่านไฟล์ XML

ตัวอย่างสคริปต์เพื่อแสดงวิธีการอ่านไฟล์ XML โดยใช้สคริปต์ PowerShell

5 สร้างไฟล์ CSV

ตัวอย่างสคริปต์เพื่อแสดงวิธีสร้างไฟล์ CSV โดยใช้สคริปต์ PowerShell

6 อ่านไฟล์ CSV

ตัวอย่างสคริปต์เพื่อแสดงวิธีการอ่านไฟล์ CSV โดยใช้สคริปต์ PowerShell

7 สร้างไฟล์ HTML

ตัวอย่างสคริปต์เพื่อแสดงวิธีสร้างไฟล์ HTML โดยใช้สคริปต์ PowerShell

8 อ่านไฟล์ HTML

ตัวอย่างสคริปต์เพื่อแสดงวิธีการอ่านไฟล์ HTML โดยใช้สคริปต์ PowerShell

9 การลบเนื้อหาไฟล์

ตัวอย่างสคริปต์เพื่อแสดงวิธีการลบเนื้อหาไฟล์โดยใช้สคริปต์ PowerShell

10 ผนวกข้อมูลข้อความ

ตัวอย่างสคริปต์เพื่อแสดงวิธีการต่อท้ายข้อความในเนื้อหาไฟล์โดยใช้สคริปต์ PowerShell

Cmdlets

cmdlet หรือ "Command let" เป็นคำสั่งที่ใช้งานง่ายในสภาพแวดล้อม Windows PowerShell รันไทม์ของ Windows PowerShell เรียกใช้ cmdlet เหล่านี้ที่พร้อมท์คำสั่ง คุณสามารถสร้างและเรียกใช้โดยทางโปรแกรมผ่าน Windows PowerShell APIs ต่อไปนี้เป็นตัวอย่างการใช้งานขั้นสูงของ cmdlets

ซีเนียร์ ประเภท Cmdlet และคำอธิบาย
1 รับ Cmdlet ที่ไม่ซ้ำใคร

ตัวอย่างโปรแกรมเพื่อแสดง Get-Unique Cmdlet

2

Group-Object Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Group-Object Cmdlet

3 การวัดวัตถุ Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Measure-Object Cmdlet

4 เปรียบเทียบวัตถุ Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Compare-Object Cmdlet

5 รูปแบบรายการ Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Format-List Cmdlet

6 รูปแบบกว้าง Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Format-Wide Cmdlet

7 Cmdlet ของวัตถุที่ไหน

ตัวอย่างโปรแกรมเพื่อแสดง Where-Object Cmdlet

8 รับ ChildItem Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Get-ChildItem Cmdlet

9 ForEach-Object Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง ForEach-Object Cmdlet

10 เริ่ม - สลีป Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Start-Sleep Cmdlet

11 อ่านโฮสต์ Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Read-Host Cmdlet

12 เลือกวัตถุ Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Select-Object Cmdlet

13 เรียงลำดับวัตถุ Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Sort-Object Cmdlet

14 Cmdlet คำเตือนการเขียน

ตัวอย่างโปรแกรมเพื่อแสดง Cmdlet คำเตือนการเขียน

15 เขียนโฮสต์ Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Write-Host Cmdlet

16 Invoke-Item Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Invoke-Item Cmdlet

17 Invoke-Expression Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Invoke-Expression Cmdlet

18 Cmdlet คำสั่งการวัด

ตัวอย่างโปรแกรมเพื่อแสดง Measure-Command Cmdlet

19 Invoke-History Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Invoke-History Cmdlet

20 Add-History Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Add-History Cmdlet

21 รับประวัติ Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Get-History Cmdlet

22 รับวัฒนธรรม Cmdlet

ตัวอย่างโปรแกรมเพื่อแสดง Get-Culture Cmdlet

Windows PowerShell คือไฟล์ command-line shell และ scripting languageออกแบบมาโดยเฉพาะสำหรับการดูแลระบบ อะนาล็อกใน Linux เรียกว่า Bash Scripting Windows PowerShell สร้างขึ้นบน. NET Framework ช่วยให้ผู้เชี่ยวชาญด้านไอทีสามารถควบคุมและดำเนินการบริหารระบบปฏิบัติการ Windows และแอปพลิเคชันที่ทำงานบนสภาพแวดล้อม Windows Server โดยอัตโนมัติ

คำสั่ง Windows PowerShell เรียกว่า cmdletsให้คุณจัดการคอมพิวเตอร์จากบรรทัดคำสั่ง ผู้ให้บริการ Windows PowerShell ช่วยให้คุณเข้าถึงที่เก็บข้อมูลเช่น Registry และ Certificate Store ได้อย่างง่ายดายเช่นเดียวกับที่คุณเข้าถึงระบบไฟล์

นอกจากนี้ Windows PowerShell ยังมีตัวแยกวิเคราะห์นิพจน์ที่สมบูรณ์และภาษาสคริปต์ที่พัฒนาขึ้นอย่างสมบูรณ์ พูดง่ายๆคือคุณสามารถทำงานทั้งหมดที่คุณทำด้วย GUI และอื่น ๆ อีกมากมาย Windows PowerShell Scripting เป็นภาษาสคริปต์ที่พัฒนาขึ้นอย่างสมบูรณ์และมีตัวแยกวิเคราะห์นิพจน์ที่หลากหลาย /

คุณสมบัติ

  • Cmdlets - Cmdlets ทำหน้าที่ดูแลระบบทั่วไปเช่นการจัดการรีจิสทรีบริการกระบวนการบันทึกเหตุการณ์และการใช้ Windows Management Instrumentation (WMI)

  • Task oriented - ภาษาสคริปต์ PowerShell ขึ้นอยู่กับงานและให้การสนับสนุนสำหรับสคริปต์ที่มีอยู่และเครื่องมือบรรทัดคำสั่ง

  • Consistent design- เนื่องจาก cmdlets และที่เก็บข้อมูลระบบใช้ไวยากรณ์ทั่วไปและมีรูปแบบการตั้งชื่อทั่วไปการแบ่งปันข้อมูลจึงทำได้ง่าย เอาต์พุตจาก cmdlet หนึ่งสามารถไปป์ไลน์ไปยัง cmdlet อื่นได้โดยไม่ต้องมีการจัดการใด ๆ

  • Simple to Use - การนำทางที่เรียบง่ายและใช้คำสั่งช่วยให้ผู้ใช้นำทางไปยังรีจิสทรีและที่เก็บข้อมูลอื่น ๆ ที่คล้ายกับการนำทางระบบไฟล์

  • Object based- PowerShell มีความสามารถในการจัดการวัตถุที่มีประสิทธิภาพ ออบเจ็กต์สามารถส่งไปยังเครื่องมือหรือฐานข้อมูลอื่นได้โดยตรง

  • Extensible interface. - PowerShell สามารถปรับแต่งได้ในฐานะผู้จำหน่ายซอฟต์แวร์อิสระและนักพัฒนาองค์กรสามารถสร้างเครื่องมือและยูทิลิตี้แบบกำหนดเองโดยใช้ PowerShell เพื่อจัดการซอฟต์แวร์ของตน

ตัวแปร

ตัวแปร PowerShell เป็นชื่อวัตถุ เนื่องจาก PowerShell ทำงานกับอ็อบเจ็กต์ตัวแปรเหล่านี้จึงถูกใช้เพื่อทำงานกับอ็อบเจ็กต์

กำลังสร้างตัวแปร

ชื่อตัวแปรควรขึ้นต้นด้วย $ และสามารถมีอักขระที่เป็นตัวเลขและตัวอักษรและขีดล่างในชื่อได้ สามารถสร้างตัวแปรได้โดยพิมพ์ชื่อตัวแปรที่ถูกต้อง

พิมพ์คำสั่งต่อไปนี้ใน PowerShell ISE Console สมมติว่าคุณอยู่ในโฟลเดอร์ D: \ test

$location = Get-Location

ที่นี่เราได้สร้างตัวแปร $ location และกำหนดผลลัพธ์ของ Get-Location cmdlet ตอนนี้มีตำแหน่งปัจจุบัน

การใช้ตัวแปร

พิมพ์คำสั่งต่อไปนี้ใน PowerShell ISE Console

$location

เอาต์พุต

คุณสามารถดูผลลัพธ์ต่อไปนี้ในคอนโซล PowerShell

Path                                                                                    
----                                                                                    
D:\test

รับข้อมูลของตัวแปร

Get-Member cmdlet สามารถบอกประเภทของตัวแปรที่ใช้ ดูตัวอย่างด้านล่าง

$location | Get-Member

เอาต์พุต

คุณสามารถดูผลลัพธ์ต่อไปนี้ในคอนโซล PowerShell

TypeName: System.Management.Automation.PathInfo

Name          MemberType   Definition                                               
----          ----------   ----------                                               
Equals        Method       bool Equals(System.Object obj)                           
GetHashCode   Method       int GetHashCode()                                        
GetType       Method       type GetType()                                           
ToString      Method       string ToString()                                        
Drive         Property     System.Management.Automation.PSDriveInfo Drive {get;}    
Path          Property     System.String Path {get;}                                
Provider      Property     System.Management.Automation.ProviderInfo Provider {get;}
ProviderPath  Property     System.String ProviderPath {get;}

ตัวแปรพิเศษของ PowerShell เก็บข้อมูลเกี่ยวกับ PowerShell สิ่งเหล่านี้เรียกอีกอย่างว่าตัวแปรอัตโนมัติ ต่อไปนี้เป็นรายการตัวแปรอัตโนมัติ -

ตัวดำเนินการ คำอธิบาย
$$ แสดงโทเค็นสุดท้ายในบรรทัดสุดท้ายที่เซสชันได้รับ
$? แสดงสถานะการดำเนินการของการดำเนินการล่าสุด ประกอบด้วย TRUE หากการดำเนินการล่าสุดสำเร็จและ FALSE หากล้มเหลว
$ ^ แสดงโทเค็นแรกในบรรทัดสุดท้ายที่เซสชันได้รับ
$ _ เหมือนกับ $ PSItem มีวัตถุปัจจุบันในวัตถุไปป์ไลน์ คุณสามารถใช้ตัวแปรนี้ในคำสั่งที่ดำเนินการกับทุกออบเจ็กต์หรือบนวัตถุที่เลือกในไปป์ไลน์
$ ARGS แสดงอาร์เรย์ของพารามิเตอร์ที่ไม่ได้ประกาศและ / หรือค่าพารามิเตอร์ที่ส่งผ่านไปยังฟังก์ชันสคริปต์หรือบล็อกสคริปต์
$ CONSOLEFILENAME แสดงเส้นทางของไฟล์คอนโซล (.psc1) ที่ใช้ล่าสุดในเซสชัน
$ ERROR แสดงอาร์เรย์ของวัตถุข้อผิดพลาดที่แสดงถึงข้อผิดพลาดล่าสุด
$ EVENT แสดงวัตถุ PSEventArgs ที่แสดงถึงเหตุการณ์ที่กำลังประมวลผล
$ EVENTARGS แสดงอ็อบเจ็กต์ที่แสดงอาร์กิวเมนต์เหตุการณ์แรกที่มาจาก EventArgs ของเหตุการณ์ที่กำลังประมวลผล
$ EVENTSUBSCRIBER แสดงอ็อบเจ็กต์ PSEventSubscriber ที่แสดงถึงสมาชิกเหตุการณ์ของเหตุการณ์ที่กำลังประมวลผล
$ EXECUTIONCONTEXT แสดงอ็อบเจ็กต์ EngineIntrinsics ที่แสดงบริบทการดำเนินการของโฮสต์ PowerShell
$ FALSE แสดงถึง FALSE คุณสามารถใช้ตัวแปรนี้เพื่อแทนค่า FALSE ในคำสั่งและสคริปต์แทนการใช้สตริง "false"
$ FOREACH แสดงถึงตัวแจงนับ (ไม่ใช่ค่าผลลัพธ์) ของ ForEach loop คุณสามารถใช้คุณสมบัติและวิธีการของตัวแจงนับกับค่าของตัวแปร $ ForEach
$ HOME แสดงเส้นทางแบบเต็มของโฮมไดเร็กทอรีของผู้ใช้
$ โฮสต์ แสดงวัตถุที่แสดงถึงแอปพลิเคชันโฮสต์ปัจจุบันสำหรับ PowerShell
$ INPUT แสดงถึงตัวแจงนับที่ระบุอินพุตทั้งหมดที่ส่งผ่านไปยังฟังก์ชัน
$ LASTEXITCODE แสดงรหัสออกของโปรแกรมที่ใช้ Windows ล่าสุดที่เรียกใช้
$ MATCHES ตัวแปร $ Matches ทำงานร่วมกับตัวดำเนินการ -match และ -notmatch
$ MYINVOCATION $ MyInvocation ถูกเติมสำหรับสคริปต์ฟังก์ชันและบล็อกสคริปต์เท่านั้น คุณสมบัติ PSScriptRoot และ PSCommandPath ของตัวแปรอัตโนมัติ $ MyInvocation มีข้อมูลเกี่ยวกับตัวเรียกใช้หรือสคริปต์การเรียกไม่ใช่สคริปต์ปัจจุบัน
$ NESTEDPROMPTLEVEL แสดงระดับพร้อมต์ปัจจุบัน
$ NULL $ null เป็นตัวแปรอัตโนมัติที่มีค่า NULL หรือค่าว่าง คุณสามารถใช้ตัวแปรนี้เพื่อแสดงค่าที่ขาดหรือไม่ได้กำหนดในคำสั่งและสคริปต์
$ PID แสดงถึงตัวระบุกระบวนการ (PID) ของกระบวนการที่โฮสต์เซสชัน PowerShell ปัจจุบัน
$ โปรไฟล์ แสดงเส้นทางแบบเต็มของโปรไฟล์ PowerShell สำหรับผู้ใช้ปัจจุบันและแอปพลิเคชันโฮสต์ปัจจุบัน
$ PSCMDLET แสดงวัตถุที่แสดงถึง cmdlet หรือฟังก์ชันขั้นสูงที่กำลังรัน
$ PSCOMMANDPATH แสดงพา ธ แบบเต็มและชื่อไฟล์ของสคริปต์ที่กำลังรัน
$ PSCULTURE แสดงชื่อของวัฒนธรรมที่ใช้ในระบบปฏิบัติการในปัจจุบัน
$ PSDEBUGCONTEXT ในขณะที่ดีบักตัวแปรนี้มีข้อมูลเกี่ยวกับสภาพแวดล้อมการดีบัก มิฉะนั้นจะมีค่า NULL
$ PSHOME แสดงเส้นทางแบบเต็มของไดเร็กทอรีการติดตั้งสำหรับ PowerShell
$ PSITEM เหมือนกับ $ _ มีวัตถุปัจจุบันในวัตถุไปป์ไลน์
$ PSSCRIPTROOT แสดงถึงไดเร็กทอรีที่สคริปต์กำลังรัน
$ PSSENDERINFO แสดงข้อมูลเกี่ยวกับผู้ใช้ที่เริ่ม PSSession รวมถึงข้อมูลประจำตัวของผู้ใช้และเขตเวลาของคอมพิวเตอร์ต้นทาง
$ PSUICULTURE แสดงชื่อของวัฒนธรรมอินเทอร์เฟซผู้ใช้ (UI) ที่ใช้อยู่ในระบบปฏิบัติการ
$ PSVERSIONTABLE แสดงตารางแฮชแบบอ่านอย่างเดียวที่แสดงรายละเอียดเกี่ยวกับเวอร์ชันของ PowerShell ที่กำลังทำงานในเซสชันปัจจุบัน
$ SENDER แสดงออบเจ็กต์ที่สร้างเหตุการณ์นี้
$ SHELLID แสดงถึงตัวระบุของเชลล์ปัจจุบัน
$ STACKTRACE แสดงการติดตามสแต็กสำหรับข้อผิดพลาดล่าสุด
$ นี้ ในบล็อกสคริปต์ที่กำหนดคุณสมบัติสคริปต์หรือวิธีการสคริปต์ตัวแปร $ นี้อ้างถึงอ็อบเจ็กต์ที่ถูกขยาย
$ จริง แสดงถึง TRUE คุณสามารถใช้ตัวแปรนี้เพื่อแทนค่า TRUE ในคำสั่งและสคริปต์

PowerShell มีชุดตัวดำเนินการที่หลากหลายเพื่อจัดการกับตัวแปร เราสามารถแบ่งตัวดำเนินการ PowerShell ทั้งหมดออกเป็นกลุ่มต่อไปนี้ -

  • ตัวดำเนินการเลขคณิต
  • ผู้ดำเนินการมอบหมาย
  • ตัวดำเนินการเปรียบเทียบ
  • ตัวดำเนินการทางตรรกะ
  • ตัวดำเนินการเปลี่ยนทิศทาง
  • ผู้ปฏิบัติงานที่รั่วไหลและเข้าร่วม
  • พิมพ์ Operators
  • ตัวดำเนินการ Unary

ตัวดำเนินการเลขคณิต

ตัวดำเนินการทางคณิตศาสตร์ใช้ในนิพจน์ทางคณิตศาสตร์ในลักษณะเดียวกับที่ใช้ในพีชคณิต ตารางต่อไปนี้แสดงรายการตัวดำเนินการเลขคณิต -

สมมติตัวแปรจำนวนเต็ม A ถือ 10 และตัวแปร B ถือ 20 จากนั้น -

แสดงตัวอย่าง

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
+ (เพิ่มเติม) เพิ่มค่าที่ด้านใดด้านหนึ่งของตัวดำเนินการ A + B จะให้ 30
- (การลบ) ลบตัวถูกดำเนินการทางขวามือออกจากตัวถูกดำเนินการด้านซ้าย A - B จะให้ -10
* (การคูณ) คูณค่าที่ด้านใดด้านหนึ่งของตัวดำเนินการ A * B จะให้ 200
/ (แผนก) แบ่งตัวถูกดำเนินการทางซ้ายด้วยตัวถูกดำเนินการทางขวามือ B / A จะให้ 2
% (โมดูลัส) แบ่งตัวถูกดำเนินการทางซ้ายด้วยตัวถูกดำเนินการทางขวามือและส่งคืนส่วนที่เหลือ B% A จะให้ 0

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

ต่อไปนี้เป็นตัวดำเนินการกำหนดที่รองรับโดยภาษา PowerShell -

สมมติตัวแปรจำนวนเต็ม A ถือ 10 และตัวแปร B ถือ 20 จากนั้น -

แสดงตัวอย่าง

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
eq (เท่ากับ) เปรียบเทียบค่าสองค่าว่าเท่ากันหรือไม่ A -eq B จะให้เท็จ
ne (ไม่เท่ากับ) เปรียบเทียบค่าสองค่าให้ไม่เท่ากัน A -ne B จะให้จริง
gt (มากกว่า) เปรียบเทียบค่าแรกให้มากกว่าค่าที่สอง B -gt A จะให้จริง
ge (มากกว่าหรือเท่ากับ) เปรียบเทียบค่าแรกว่ามากกว่าหรือเท่ากับค่าที่สอง B -ge A จะให้จริง
lt (น้อยกว่า) เปรียบเทียบค่าแรกให้น้อยกว่าค่าที่สอง B -lt A จะให้เท็จ
le (น้อยกว่าหรือเท่ากับ) เปรียบเทียบค่าแรกให้น้อยกว่าหรือเท่ากับค่าที่สอง B -le A จะให้เท็จ

ผู้ดำเนินการมอบหมาย

ต่อไปนี้เป็นตัวดำเนินการกำหนดที่รองรับโดยภาษา PowerShell -

แสดงตัวอย่าง

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
= ตัวดำเนินการกำหนดง่าย กำหนดค่าจากตัวถูกดำเนินการด้านขวาไปยังตัวถูกดำเนินการด้านซ้าย C = A + B จะกำหนดค่า A + B ให้เป็น C
+ = เพิ่มและกำหนดโอเปอเรเตอร์ เพิ่มตัวถูกดำเนินการด้านขวาให้กับตัวถูกดำเนินการด้านซ้ายและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการด้านซ้าย C + = A เทียบเท่ากับ C = C + A
- = ตัวดำเนินการลบและกำหนด มันจะลบตัวถูกดำเนินการด้านขวาออกจากตัวถูกดำเนินการด้านซ้ายและกำหนดผลลัพธ์ให้กับตัวถูกดำเนินการด้านซ้าย C - = A เทียบเท่ากับ C = C - A

ตัวดำเนินการทางตรรกะ

ตารางต่อไปนี้แสดงรายการตัวดำเนินการทางตรรกะ -

สมมติว่าตัวแปรบูลีน A ถือเป็นจริงและตัวแปร B ถือเป็นเท็จจากนั้น -

แสดงตัวอย่าง

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
AND (ตรรกะและ) เรียกว่าตัวดำเนินการ Logical AND ถ้าตัวถูกดำเนินการทั้งสองไม่ใช่ศูนย์เงื่อนไขจะกลายเป็นจริง (A -AND B) เป็นเท็จ
หรือ (ตรรกะหรือ) เรียกว่า Logical OR Operator หากตัวถูกดำเนินการสองตัวใดตัวหนึ่งไม่เป็นศูนย์เงื่อนไขจะกลายเป็นจริง (A -OR B) เป็นจริง
ไม่ (ตรรกะไม่) เรียกว่า Logical NOT Operator ใช้เพื่อย้อนกลับสถานะตรรกะของตัวถูกดำเนินการ หากเงื่อนไขเป็นจริงตัวดำเนินการ Logical NOT จะสร้างเท็จ -NOT (A -AND B) เป็นจริง

ตัวดำเนินการเบ็ดเตล็ด

ต่อไปนี้เป็นตัวดำเนินการสำคัญต่างๆที่รองรับโดยภาษา PowerShell -

แสดงตัวอย่าง

ตัวดำเนินการ คำอธิบาย ตัวอย่าง
> (ตัวดำเนินการเปลี่ยนทิศทาง) ตัวดำเนินการเปลี่ยนทิศทาง กำหนดเอาต์พุตที่จะพิมพ์ลงในไฟล์ / อุปกรณ์เอาต์พุตที่เปลี่ยนทิศทาง dir> test.log จะพิมพ์รายการไดเร็กทอรีในไฟล์ test.log

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

ภาษาโปรแกรมจัดเตรียมโครงสร้างการควบคุมต่างๆที่ช่วยให้เส้นทางการดำเนินการซับซ้อนมากขึ้น

loop คำสั่งอนุญาตให้เราดำเนินการคำสั่งหรือกลุ่มของคำสั่งหลาย ๆ ครั้งและต่อไปนี้เป็นรูปแบบทั่วไปของคำสั่งวนซ้ำในภาษาโปรแกรมส่วนใหญ่ -

ภาษาการเขียนโปรแกรม PowerShell มีประเภทของลูปต่อไปนี้เพื่อจัดการกับข้อกำหนดการวนซ้ำ คลิกลิงก์ต่อไปนี้เพื่อตรวจสอบรายละเอียด

ซีเนียร์ ห่วงและคำอธิบาย
1 สำหรับห่วง

เรียกใช้ลำดับของคำสั่งหลาย ๆ ครั้งและย่อโค้ดที่จัดการตัวแปรลูป

2 สำหรับแต่ละวง

ปรับปรุงสำหรับการวนซ้ำ ส่วนใหญ่จะใช้เพื่อสำรวจคอลเลกชันขององค์ประกอบรวมถึงอาร์เรย์

3 ในขณะที่วนซ้ำ

ทำซ้ำคำสั่งหรือกลุ่มของคำสั่งในขณะที่เงื่อนไขที่กำหนดเป็นจริง จะทดสอบเงื่อนไขก่อนที่จะดำเนินการร่างกายลูป

4 ทำ ... ในขณะที่วนซ้ำ

เช่นเดียวกับคำสั่ง while ยกเว้นว่าจะทดสอบเงื่อนไขที่ส่วนท้ายของตัวห่วง

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

ต่อไปนี้เป็นรูปแบบทั่วไปของโครงสร้างการตัดสินใจทั่วไปที่พบในภาษาโปรแกรมส่วนใหญ่ -

ภาษาสคริปต์ PowerShell มีประเภทของคำสั่งประกอบการตัดสินใจดังต่อไปนี้ คลิกลิงก์ต่อไปนี้เพื่อตรวจสอบรายละเอียด

ซีเนียร์ คำชี้แจงและคำอธิบาย
1 ถ้าคำสั่ง

อัน if statement ประกอบด้วยนิพจน์บูลีนตามด้วยหนึ่งคำสั่งขึ้นไป

2 if ... else คำสั่ง

อัน if statement ตามด้วยตัวเลือกก็ได้ else statementซึ่งดำเนินการเมื่อนิพจน์บูลีนเป็นเท็จ

3 คำสั่ง if ซ้อนกัน

คุณสามารถใช้ if หรือ elseif คำสั่งภายในอื่น if หรือ elseif คำสั่ง (s)

4 สลับคำสั่ง

switch คำสั่งอนุญาตให้ทดสอบตัวแปรเพื่อความเท่าเทียมกับรายการค่า

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

แทนที่จะประกาศตัวแปรเดี่ยวเช่น number0, number1, ... และ number99 คุณจะประกาศตัวแปรอาร์เรย์หนึ่งตัวเช่นตัวเลขและใช้ตัวเลข [0], ตัวเลข [1] และ ... , ตัวเลข [99] เพื่อแสดง ตัวแปรแต่ละตัว

บทช่วยสอนนี้แนะนำวิธีการประกาศตัวแปรอาร์เรย์สร้างอาร์เรย์และประมวลผลอาร์เรย์โดยใช้ตัวแปรที่จัดทำดัชนี

การประกาศตัวแปรอาร์เรย์

ในการใช้อาร์เรย์ในโปรแกรมคุณต้องประกาศตัวแปรเพื่ออ้างอิงอาร์เรย์และคุณสามารถระบุประเภทของอาร์เรย์ที่ตัวแปรอ้างอิงได้ นี่คือไวยากรณ์สำหรับการประกาศตัวแปรอาร์เรย์ -

ไวยากรณ์

$A = 1, 2, 3, 4
or
$A = 1..4

Note- ตามค่าเริ่มต้นของวัตถุของอาร์เรย์คือ System.Object GetType () วิธีการส่งกลับประเภทของอาร์เรย์ ประเภทสามารถส่งผ่านได้

ตัวอย่าง

ตัวอย่างโค้ดต่อไปนี้เป็นตัวอย่างของไวยากรณ์นี้ -

[int32[]]$intA = 1500,2230,3350,4000

$A = 1, 2, 3, 4
$A.getType()

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

เอาต์พุต

IsPublic    IsSerial    Name                        BaseType                     
--------    --------    ----                        --------                     
True        True        Object[]                    System.Array

องค์ประกอบอาร์เรย์สามารถเข้าถึงได้ผ่านไฟล์ index. ดัชนีอาร์เรย์เป็นแบบ 0 นั่นคือพวกมันเริ่มจาก 0 ถึงarrayRefVar.length-1.

ตัวอย่าง

คำสั่งต่อไปนี้ประกาศตัวแปรอาร์เรย์ myList สร้างอาร์เรย์ 10 องค์ประกอบประเภทคู่และกำหนดการอ้างอิงไปยัง myList -

$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123

ภาพต่อไปนี้แสดงถึงอาร์เรย์ myList ที่นี่ myList มีค่าสองค่าสิบค่าและดัชนีอยู่ระหว่าง 0 ถึง 9

อาร์เรย์การประมวลผล

เมื่อประมวลผลองค์ประกอบอาร์เรย์เรามักใช้อย่างใดอย่างหนึ่ง for ห่วงหรือ foreach วนซ้ำเนื่องจากองค์ประกอบทั้งหมดในอาร์เรย์เป็นประเภทเดียวกันและทราบขนาดของอาร์เรย์

ตัวอย่าง

นี่คือตัวอย่างที่สมบูรณ์ที่แสดงวิธีการสร้างเริ่มต้นและประมวลผลอาร์เรย์ -

$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123

write-host("Print all the array elements")
$myList

write-host("Get the length of array")
$myList.Length

write-host("Get Second element of array")
$myList[1]

write-host("Get partial array")
$subList = $myList[1..3]

write-host("print subList")
$subList

write-host("using for loop")
for ($i = 0; $i -le ($myList.length - 1); $i += 1) {
   $myList[$i]
}

write-host("using forEach Loop")
foreach ($element in $myList) {
   $element
}

write-host("using while Loop")
$i = 0
while($i -lt 4) {
   $myList[$i];
   $i++
}

write-host("Assign values")
$myList[1] = 10
$myList

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

เอาต์พุต

Print all the array elements
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
Get the length of array
10
Get Second element of array
4.5
Get partial array
print subList
4.5
3.3
13.2
using for loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using forEach Loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using while Loop
5.6
4.5
3.3
13.2
Assign values
5.6
10
3.3
13.2
4
34.33
34
45.45
99.993
11123

ตัวอย่างวิธีการอาร์เรย์

นี่คือตัวอย่างที่สมบูรณ์ที่แสดงการดำเนินการกับอาร์เรย์โดยใช้วิธีการ

$myList = @(0..4)

write-host("Print array")
$myList

$myList = @(0..4)

write-host("Assign values")
$myList[1]  = 10
$myList

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

เอาต์พุต

Clear array
Print array
0
1
2
3
4
Assign values
0
10
2
3
4

Hashtable เก็บคู่คีย์ / ค่าไว้ในตารางแฮช เมื่อใช้ Hashtable คุณต้องระบุวัตถุที่ใช้เป็นคีย์และค่าที่คุณต้องการเชื่อมโยงกับคีย์นั้น โดยทั่วไปเราใช้ String หรือตัวเลขเป็นคีย์

บทช่วยสอนนี้จะแนะนำวิธีการประกาศตัวแปรแฮชแท็กสร้างแฮชแท็กและประมวลผลแฮชแท็กโดยใช้วิธีการ

การประกาศตัวแปรแฮชแท็ก

ในการใช้แฮชแท็กในโปรแกรมคุณต้องประกาศตัวแปรเพื่ออ้างอิงแฮชแท็ก นี่คือไวยากรณ์สำหรับการประกาศตัวแปรแฮชแท็ก -

ไวยากรณ์

$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}
or
$hash = @{}

Note- สามารถสร้างพจนานุกรมตามลำดับได้โดยใช้ไวยากรณ์ที่คล้ายกัน พจนานุกรมที่ได้รับคำสั่งจะรักษาลำดับการเพิ่มรายการในขณะที่แฮชแท็บไม่ได้

ตัวอย่าง

ตัวอย่างโค้ดต่อไปนี้เป็นตัวอย่างของไวยากรณ์นี้ -

$hash = [ordered]@{ ID = 1; Shape = "Square"; Color = "Blue"}

พิมพ์แฮชแท็ก

$hash

เอาต์พุต

Name                           Value    
----                           -----                                                    
ID                             1                                                        
Color                          Blue                                                     
Shape                          Square

สามารถเข้าถึงค่าแฮชแท็กได้ผ่านไฟล์ keys.

> $hash["ID"]
 1

การประมวลผล Hashtable

สัญลักษณ์จุดสามารถใช้เพื่อเข้าถึงคีย์หรือค่าของแฮชแท็บได้

> $hash.keys
ID
Color
Shape

> $hash.values
1
Blue
Square

ตัวอย่าง

นี่คือตัวอย่างที่สมบูรณ์ที่แสดงวิธีสร้างเริ่มต้นและประมวลผลแฮชแท็ก -

$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}

write-host("Print all hashtable keys")
$hash.keys

write-host("Print all hashtable values")
$hash.values

write-host("Get ID")
$hash["ID"]

write-host("Get Shape")
$hash.Number

write-host("print Size")
$hash.Count

write-host("Add key-value")
$hash["Updated"] = "Now"

write-host("Add key-value")
$hash.Add("Created","Now")

write-host("print Size")
$hash.Count

write-host("Remove key-value")
$hash.Remove("Updated")

write-host("print Size")
$hash.Count

write-host("sort by key")
$hash.GetEnumerator() | Sort-Object -Property key

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

เอาต์พุต

Print all hashtable keys
ID
Color
Shape
Print all hashtable values
1
Blue
Square
Get ID
1
Get Shape
print Size
3
Add key-value
Add key-value
print Size
5
Remove key-value
print Size
4
sort by key

Name                           Value                                                                                                   
----                           -----                                                                                                   
Color                          Blue                                                                                                    
Created                        Now                                                                                                     
ID                             1                                                                                                       
Shape                          
Square

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

นี่คือตารางที่แสดงรายการไวยากรณ์ของนิพจน์ทั่วไป metacharacter ทั้งหมดที่มีอยู่ใน PowerShell -

Subexpression ตรงกัน
^ ตรงกับจุดเริ่มต้นของบรรทัด
$ ตรงกับจุดสิ้นสุดของบรรทัด
. จับคู่อักขระเดี่ยวใด ๆ ยกเว้นขึ้นบรรทัดใหม่ การใช้m ตัวเลือกช่วยให้สามารถจับคู่ขึ้นบรรทัดใหม่ได้เช่นกัน
[... ] จับคู่อักขระเดี่ยวใด ๆ ในวงเล็บ
[^ ... ] จับคู่อักขระเดี่ยวใด ๆ ที่ไม่อยู่ในวงเล็บ
\ ก จุดเริ่มต้นของสตริงทั้งหมด
\ z สิ้นสุดสตริงทั้งหมด
\ Z สิ้นสุดสตริงทั้งหมดยกเว้นตัวยุติบรรทัดสุดท้ายที่อนุญาต
re * จับคู่ 0 หรือมากกว่าที่เกิดขึ้นของนิพจน์ก่อนหน้า
re + ตรงกับสิ่งก่อนหน้าอย่างน้อย 1 อย่าง
รี? จับคู่ 0 หรือ 1 ครั้งของนิพจน์ก่อนหน้า
อีกครั้ง {n} ตรงกับจำนวนครั้งที่เกิดขึ้นของนิพจน์ก่อนหน้า
อีก {n,} จับคู่ n เหตุการณ์ขึ้นไปของนิพจน์ก่อนหน้า
ใหม่ {n, m} จับคู่อย่างน้อย n และมากที่สุด m ที่เกิดขึ้นของนิพจน์ก่อนหน้า
ก | ข จับคู่ a หรือ b
(อีกครั้ง) จัดกลุ่มนิพจน์ทั่วไปและจดจำข้อความที่ตรงกัน
(?: อีกครั้ง) จัดกลุ่มนิพจน์ทั่วไปโดยไม่จำข้อความที่ตรงกัน
(?> อีกครั้ง) จับคู่รูปแบบอิสระโดยไม่ต้องย้อนรอย
\ w จับคู่อักขระคำ
\ ว จับคู่อักขระที่ไม่ใช่คำหลัก
\ s ตรงกับช่องว่าง เทียบเท่ากับ [\ t \ n \ r \ f]
\ S ตรงกับ nonwhitespace
\ d ตรงกับตัวเลข เทียบเท่ากับ [0-9]
\ D ตรงกับ nondigits
\ ก ตรงกับจุดเริ่มต้นของสตริง
\ Z ตรงกับจุดสิ้นสุดของสตริง หากมีขึ้นบรรทัดใหม่จะตรงกับก่อนขึ้นบรรทัดใหม่
\ z ตรงกับจุดสิ้นสุดของสตริง
\ G ตรงกับจุดที่นัดสุดท้ายจบ
\ n อ้างอิงกลับเพื่อจับหมายเลขกลุ่ม "n"
\ b จับคู่ขอบเขตของคำเมื่ออยู่นอกวงเล็บ จับคู่ backspace (0x08) เมื่ออยู่ในวงเล็บ
\ B ตรงกับขอบเขตที่ไม่ใช่คำ
\ n, t ฯลฯ จับคู่การขึ้นบรรทัดใหม่การคืนค่าขนส่งแท็บ ฯลฯ
\ Q Escape (quote) อักขระทั้งหมดไม่เกิน \ E
\ E เริ่มต้นการอ้างอิงด้วย \ Q

นี่คือตัวอย่างทั้งหมดที่แสดงวิธีใช้ regex ใน PowerShell

ซีเนียร์ จับคู่และคำอธิบาย
1 จับคู่อักขระ

ตัวอย่างอักขระนิพจน์ทั่วไปที่รองรับ

2 จับคู่คลาสตัวละคร

ตัวอย่างคลาสอักขระที่รองรับ

3 จับคู่ Quantifiers

ตัวอย่างปริมาณที่รองรับ

ตัวดำเนินการ Backtick (`) เรียกอีกอย่างว่าตัวดำเนินการตัดคำ อนุญาตให้เขียนคำสั่งในหลายบรรทัด สามารถใช้สำหรับบรรทัดใหม่ (`n) หรือ tab (` t) ในประโยคได้เช่นกัน ดูตัวอย่างด้านล่าง -

ตัวอย่าง 1

Get-Service * | Sort-Object ServiceType `
| Format-Table Name, ServiceType, Status -AutoSize

มันจะกลายเป็น

Get-Service * | Sort-Object ServiceType | Format-Table Name, ServiceType, Status -AutoSize

ตรวจสอบผลลัพธ์เป็น

Name                                                   ServiceType  Status
----                                                   -----------  ------
MSSQLServerADHelper100                             Win32OwnProcess Stopped
ntrtscan                                           Win32OwnProcess Running
...

ตัวอย่าง 2

การใช้บรรทัดและแท็บใหม่

> Write-host "Title Subtitle"
Title Subtitle

> Write-host "Title `nSubtitle"
Title 
Subtitle

> Write-host "Title `tSubtitle"
Title   Subtitle

Powershell รองรับวงเล็บสามประเภท

  • Parenthesis brackets. − ()

  • Braces brackets. − {}

  • Square brackets. − []

วงเล็บปีกกา

วงเล็บประเภทนี้ใช้เพื่อ

  • ผ่านข้อโต้แย้ง

  • แนบชุดคำสั่งหลายชุด

  • แก้ไขความคลุมเครือ

  • สร้างอาร์เรย์

ตัวอย่าง

> $array = @("item1", "item2", "item3")
 
> foreach ($element in $array) { $element }
item1
item2
item3

วงเล็บปีกกา

วงเล็บประเภทนี้ใช้เพื่อ

  • ปิดคำสั่ง

  • คำสั่งบล็อก

ตัวอย่าง

$x = 10

if($x -le 20){
   write-host("This is if statement")
}

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

เอาต์พุต

This is if statement.

วงเล็บเหลี่ยม

วงเล็บประเภทนี้ใช้เพื่อ

  • เข้าถึงอาร์เรย์

  • เข้าถึงแฮชแท็ก

  • กรองโดยใช้นิพจน์ทั่วไป

ตัวอย่าง

> $array = @("item1", "item2", "item3")
 
> for($i = 0; $i -lt $array.length; $i++){ $array[$i] }
item1
item2
item3
 
>Get-Process [r-s]*
 Handles    NPM(K)     PM(K)    WS(K)   VM(M)   CPU(s)     Id    ProcessName
-------    ------     -----     -----   -----   ------     --    -----------  
    320        72     27300     33764    227     3.95    4028    SCNotification 
   2298        77     57792     48712    308             2884    SearchIndexer
   ...

นามแฝงของ PowerShell เป็นชื่ออื่นสำหรับ cmdlet หรือสำหรับองค์ประกอบคำสั่งใด ๆ

การสร้างนามแฝง

ใช้ New-Aliascmdlet เพื่อสร้างนามแฝง ในตัวอย่างด้านล่างเราได้สร้างนามแฝง help สำหรับ Get-Help cmdlet

New-Alias -Name help -Value Get-Help

ตอนนี้เรียกใช้นามแฝง

help Get-WmiObject -Detailed

คุณจะเห็นผลลัพธ์ต่อไปนี้

NAME
   Get-WmiObject
    
SYNOPSIS
   Gets instances of Windows Management Instrumentation (WMI) classes or information about the available classes.    
    
SYNTAX
   Get-WmiObject [
...

การรับนามแฝง

ใช้ get-alias cmdlet เพื่อรับนามแฝงทั้งหมดที่มีอยู่ในเซสชันปัจจุบันของ powershell

Get-Alias

คุณจะเห็นผลลัพธ์ต่อไปนี้

CommandType     Name                     Definition
-----------     ----                     ----------  
Alias           %                        ForEach-Object
Alias           ?                        Where-Object
Alias           ac                       Add-Content
Alias           asnp                     Add-PSSnapIn 
...
พิมพ์