รับไฟล์ทั้งหมดในไดเรกทอรีแบบเรียกซ้ำใน PowerShell
ใน PowerShell ไดเรกทอรีสามารถดึงข้อมูลซ้ำได้โดยใช้ Get-ChildItem cmdlet และพารามิเตอร์ -Recurse
ใช้ Get-ChildItem กับ Select-Object:
Get-ChildItem -Path "D:\Content Writing" -Recurseเอาท์พุต :
Directory: D:\Content Writing
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 09-04-2023 16:57 test1
d----- 09-04-2023 16:58 test2
Directory: D:\Content Writing\test1
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 09-04-2023 16:57 7 file1.md
-a---- 09-04-2023 16:57 7 file2.md
-a---- 09-04-2023 16:57 7 file3.md
Directory: D:\Content Writing\Directory\test2
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 09-04-2023 16:57 7 file4.md
-a---- 09-04-2023 16:57 7 file5.mdหากคุณต้องการรับไฟล์ทั้งหมดในไดเร็กทอรีปัจจุบันใน PowerShell คุณสามารถใช้คำสั่งด้านล่าง:
ใช้ Get-ChildItem กับ Select-Object:
Get-ChildItem -Recurseโฟลเดอร์และไฟล์สามารถยกเว้นได้โดยใช้พารามิเตอร์ -Exclude
ขั้นแรก ให้ดูที่วัตถุประสงค์ของพารามิเตอร์และ cmdlets ที่จะใช้สำหรับวัตถุประสงค์ที่แตกต่างกันในบทความนี้:
Get-ChildItemcmdlet ใน PowerShell ดึงข้อมูลไดเรกทอรีและรายการไฟล์แบบเรียกซ้ำ-Recurseใช้เพื่อดึงข้อมูลไดเร็กทอรีแบบวนซ้ำ ซึ่งหมายความว่าไฟล์ โฟลเดอร์ และโฟลเดอร์ย่อยทั้งหมดจะถูกดึงข้อมูล- ใช้พารามิเตอร์
-Excludeเพื่อยกเว้นไฟล์และโฟลเดอร์ที่ต้องการ คุณสามารถแก้ไขพารามิเตอร์-Excludeเพื่อรวมชื่อไฟล์และโฟลเดอร์หลายชื่อโดยคั่นด้วยเครื่องหมายจุลภาค Select-Objectcmdlet จะแสดงเฉพาะคุณสมบัติFullNameของแต่ละรายการ ซึ่งเป็นเส้นทางแบบเต็มไปยังไฟล์หรือโฟลเดอร์
มาดูรายละเอียดตัวอย่างเพื่อเรียนรู้การใช้ cmdlet แต่ละรายการและพารามิเตอร์ที่กล่าวถึงข้างต้น
ใช้ Get-ChildItem Cmdlet
เราสามารถใช้ Get-ChildItem cmdlet เพื่อทำสิ่งต่อไปนี้:
- เพื่อดึงข้อมูลไดเร็กทอรีแบบวนซ้ำ
- หากต้องการแยกไฟล์ใดไฟล์หนึ่งออกจากไดเร็กทอรี
- เพื่อแยกโฟลเดอร์ใดโฟลเดอร์หนึ่งออกจากไดเร็กทอรี
- เพื่อแยกไฟล์ประเภทหรือนามสกุลเดียวกันออกจากไดเร็กทอรี
ดูตัวอย่างต่อไปนี้เพื่อเรียนรู้
ใช้ Get-ChildItem กับพารามิเตอร์ -Recurse และ Select-Object cmdlet เพื่อดึงข้อมูลไดเรกทอรีแบบเรียกซ้ำ
ใช้ Get-ChildItem กับ Select-Object:
Get-ChildItem -Path "D:\Content Writing" -Recurse | Select-Object FullNameเอาท์พุต :
FullName
--------
D:\Content Writing\test1
D:\Content Writing\test2
D:\Content Writing\test1\file1.md
D:\Content Writing\test1\file2.md
D:\Content Writing\test1\file3.md
D:\Content Writing\test2\file4.md
D:\Content Writing\test2\file5.mdใช้ Get-ChildItem พร้อมด้วยพารามิเตอร์ -Recurse & -Exclude และ Select-Object cmdlet เพื่อดึงข้อมูล สร้างโฟลเดอร์ให้สมบูรณ์และโฟลเดอร์ย่อยซ้ำๆ แต่ไม่รวมไฟล์ file1.txt
ใช้ Get-ChildItem กับ Select-Object:
Get-ChildItem -Path "D:\Content Writing" -Recurse -Exclude "file1.md" | Select-Object FullNameเอาท์พุต :
FullName
--------
D:\Content Writing\test1
D:\Content Writing\test2
D:\Content Writing\test1\file2.md
D:\Content Writing\test1\file3.md
D:\Content Writing\test2\file4.md
D:\Content Writing\test2\file5.mdใช้ Get-ChildItem พร้อมด้วยพารามิเตอร์ -Recurse & -Exclude และ Select-Object cmdlet เพื่อดึงข้อมูล สร้างโฟลเดอร์ให้สมบูรณ์และโฟลเดอร์ย่อยซ้ำๆ แต่ไม่รวมโฟลเดอร์ test2
ใช้ Get-ChildItem กับ Select-Object:
Get-ChildItem -Path "D:\folder" -Recurse -Exclude "test2" | Select-Object FullNameเอาท์พุต :
FullName
--------
D:\Content Writing\test1
D:\Content Writing\test1\file1.md
D:\Content Writing\test1\file2.md
D:\Content Writing\test1\file3.md
D:\Content Writing\test2\file4.md
D:\Content Writing\test2\file5.mdคำสั่งดังกล่าวจะแยกโฟลเดอร์ที่ระบุ ไม่ใช่โฟลเดอร์ย่อยหรือไฟล์ อย่างที่คุณเห็น เราได้ดึงข้อมูลตำแหน่งของไฟล์
file4.docxและfile5.docxจากโฟลเดอร์test2แต่ไม่ใช่test2โฟลเดอร์นั้นเอง
ใช้ Get-ChildItem พร้อมด้วยพารามิเตอร์ -Recurse & -Exclude และ Select-Object cmdlet เพื่อดึงข้อมูล สร้างโฟลเดอร์ให้สมบูรณ์และโฟลเดอร์ย่อยซ้ำๆ แต่ไม่รวมไฟล์ประเภทหรือนามสกุลเดียวกัน
ใช้ Get-ChildItem กับ Select-Object:
Get-ChildItem -Path "D:\Content Writing" -Recurse -Exclude *.md | Select-Object FullNameเอาท์พุต :
D:\Content Writing\test1
D:\Content Writing\test2นั่นคือทั้งหมดที่เกี่ยวกับวิธีรับไฟล์ทั้งหมดในไดเร็กทอรีแบบเรียกซ้ำใน PowerShell
