วิธีลบโฟลเดอร์ว่างทั้งหมดใน PowerShell (พร้อมตัวอย่าง)
คุณสามารถใช้ไวยากรณ์ต่อไปนี้ใน PowerShell เพื่อแสดงรายการโฟลเดอร์ว่างทั้งหมดในไดเรกทอรีปัจจุบัน:
Dir -Directory -Recurse | Where-Object {$_.GetFileSystemInfos().Count -eq 0 }
จากนั้นคุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อ ลบโฟลเดอร์ว่างทั้งหมด ในไดเรกทอรีปัจจุบันแบบวนซ้ำ:
Get-ChildItem -Recurse -Force -Directory |
Sort-Object -Property FullName -Descending |
Where-Object { $($_ | Get-ChildItem -Force | Select-Object -First 1).Count -eq 0 } |
Remove-Item -Verboseโปรดทราบว่าเราใช้ Remove-Item cmdlet ในบรรทัดสุดท้ายเพื่อลบโฟลเดอร์ว่าง และเราระบุ -Verbose เพื่อให้ PowerShell ส่งออกชื่อของโฟลเดอร์ที่จะลบ
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: วิธีลบโฟลเดอร์ว่างทั้งหมดใน PowerShell
สมมติว่าเราต้องการลบโฟลเดอร์ว่างทั้งหมดในไดเร็กทอรีปัจจุบันของเรา
ก่อนอื่นเราสามารถใช้คำสั่ง Dir เพื่อดูโฟลเดอร์ทั้งหมดในไดเร็กทอรีปัจจุบัน:
Dir -Directory -Recurse
ภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:
เราจะเห็นว่าไดเร็กทอรีปัจจุบันมีห้าโฟลเดอร์และไม่มีโฟลเดอร์ใดที่มีโฟลเดอร์ย่อย
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อตรวจสอบก่อนว่ามีโฟลเดอร์ใดว่างหรือไม่:
Dir -Directory -Recurse | Where-Object {$_.GetFileSystemInfos().Count -eq 0 }ภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:
สิ่งนี้จะส่งคืนชื่อของสองโฟลเดอร์ที่ว่างเปล่า:
- สถานที่
- ภูมิภาค
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อลบโฟลเดอร์เหล่านี้ออกจากไดเร็กทอรี:
Get-ChildItem -Recurse -Force -Directory |
Sort-Object -Property FullName -Descending |
Where-Object { $($_ | Get-ChildItem -Force | Select-Object -First 1).Count -eq 0 } |
Remove-Item -Verboseภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:
คำสั่ง VERBOSE ในเอาต์พุตบอกเราว่าทั้งโฟลเดอร์ regions และ locations ได้ถูกลบออกไปแล้ว
เราสามารถใช้คำสั่ง Dir อีกครั้งเพื่อดูโฟลเดอร์ทั้งหมดในไดเร็กทอรีปัจจุบัน:
เราจะเห็นว่าโฟลเดอร์ ภูมิภาค และ สถานที่ ถูกลบออกจากไดเรกทอรีปัจจุบันแล้ว



