วนซ้ำไฟล์ในไดเร็กทอรีโดยใช้ PowerShell

Wn Sa Fil Ni Direkthxri Doy Chi Powershell



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

บทความนี้จะกล่าวถึงคำแนะนำสำหรับการวนซ้ำในไดเร็กทอรีโดยใช้ PowerShell

วิธีวนซ้ำไฟล์ในไดเร็กทอรีโดยใช้ PowerShell

PowerShell สามารถวนซ้ำไฟล์ในไดเร็กทอรีโดยใช้ ' แต่ละ() ” วนซ้ำ ลูป “Foreach()” ใช้เพื่อประมวลผลรายการทั้งหมดในคราวเดียว เช่น การเปลี่ยนชื่อหรือคัดลอกหลายไฟล์ ในขณะที่ ' Foreach-Object() ” cmdlet อ้างถึงทีละรายการในลูป มันประมวลผลทีละรายการ







ตัวอย่างที่ 1: วนซ้ำไฟล์โดยใช้ “Foreach-Object” ใน PowerShell Script

ในตัวอย่างนี้ เราจะวนซ้ำไฟล์ในไดเร็กทอรีโดยใช้ PowerShell และพิมพ์ชื่อไฟล์ที่มีอยู่ในไดเร็กทอรีนั้น:



Get-ChildItem 'C:\หมอ' |

Foreach-วัตถุ {

$_ .ชื่อเต็ม

}

ตามรหัสด้านบน:



  • ขั้นแรกให้เพิ่ม ' Get-ChildItem ” ข้างเส้นทางไดเร็กทอรีเพื่อรับไฟล์ที่มีอยู่ในไดเร็กทอรีนั้น
  • หลังจากนั้นให้ใช้ปุ่ม “ | ” ไปป์ไลน์เพื่อถ่ายโอนเอาต์พุตไปยัง “ Foreach-Object() ” cmdlet เพื่อดำเนินการกับแต่ละรายการในคอลเลกชันของวัตถุอินพุต
  • เพิ่ม ' $_.ชื่อเต็ม ” cmdlet เพื่อแสดงชื่อของไฟล์ที่ดึงมาจากไดเร็กทอรี:





สามารถสังเกตได้ว่าไฟล์ในไดเร็กทอรีถูกแสดงในคอนโซล PowerShell โดยใช้ ' Foreach-Object() ” วนซ้ำ

ตัวอย่างที่ 2: วนซ้ำไฟล์โดยใช้ 'Foreach-Object' กับ '-Recurse' ใน PowerShell Script

ตอนนี้ วนซ้ำไดเรกทอรีย่อยโดยใช้ PowerShell's “ - เรียกคืน ” พารามิเตอร์:



สังเกตได้ว่าไฟล์จากไดเร็กทอรีย่อยยังแสดงอยู่ในคอนโซล PowerShell

ตัวอย่างที่ 3: วนซ้ำไฟล์โดยใช้ “Foreach-Object” ใน PowerShell Console

ในการดำเนินการเดียวกัน ก่อนอื่น มาดูไฟล์ที่มีอยู่ก่อนที่จะลบไฟล์ที่เลือกในไดเร็กทอรีที่เกี่ยวข้องโดยใช้ปุ่ม ' Get-ChildItem ” cmdlet ข้างเส้นทางไดเร็กทอรี:

> Get-ChildItem 'C:\หมอ'

ไฟล์ที่มีอยู่ในไดเร็กทอรีถูกแสดงในคอนโซล PowerShell

ตอนนี้เรามาลบไฟล์ด้วย ' .txt ” ส่วนขยายโดยใช้ “ Foreach-Object() ” วนซ้ำใน PowerShell:

Get-ChildItem 'C:\หมอ' * .ps1 |

Foreach-วัตถุ {

ลบรายการ $_ .ชื่อเต็ม

}

ตามรหัสด้านบน:

  • ขั้นแรกให้เพิ่ม ' Get-ChildItem ” cmdlet ตามด้วยเส้นทางไดเร็กทอรีและ “ *.ps1 ” นามสกุลเพื่อเลือกไฟล์ที่มี “ .ps1 ' ส่วนขยาย.
  • หลังจากนั้นให้ใช้ปุ่ม “ | ” ไปป์ไลน์เพื่อถ่ายโอนเอาต์พุตไปยัง “ Foreach-Object() ” วนซ้ำ
  • ข้างใน ' Foreach-Object() ” วนซ้ำ เพิ่ม “ ลบรายการ ” cmdlet เพื่อลบไฟล์ที่เรียกโดย “ $_.ชื่อเต็ม ' คุณสมบัติ:

ตอนนี้มาตรวจสอบว่าไฟล์ถูกลบหรือไม่โดยการรับไฟล์ในไดเร็กทอรี:

> Get-ChildItem 'C:\หมอ'

อย่างที่คุณเห็นได้ว่าไฟล์ที่มี “ .txt ” ส่วนขยายถูกลบโดยใช้การวนซ้ำใน PowerShell

บทสรุป

เพื่อวนซ้ำไฟล์ในไดเร็กทอรี “ Foreach-Object() ” วนซ้ำใช้ใน PowerShell มันประมวลผลและอ้างถึงทีละรายการจากชุดของรายการหรือวัตถุ นอกจากนี้ยังช่วยในการลบ เปลี่ยนชื่อ หรือคัดลอกไฟล์หลายไฟล์ บทความนี้ครอบคลุมคำแนะนำฉบับสมบูรณ์ในการวนซ้ำไฟล์ในไดเร็กทอรีโดยใช้ PowerShell