บทความนี้จะกล่าวถึงคำแนะนำสำหรับการวนซ้ำในไดเร็กทอรีโดยใช้ 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