แม้ว่าจะไม่ตรงตามข้อกำหนดสำหรับสคริปต์ชุดงาน แต่ฉันใช้สคริปต์ PowerShell บรรทัดเดียว:
Get-Childitem C:\MyDirectory -Recurse | WHERE { -NOT $_.PSIsContainer } | Group Extension -NoElement | Sort Count -Desc > FileExtensions.txt
คุณสามารถเรียกใช้ได้จากบรรทัดคำสั่ง / ไฟล์แบตช์
Powershell -Command "& Get-Childitem C:\MyDirectory -Recurse | WHERE { -NOT $_.PSIsContainer } | Group Extension -NoElement | Sort Count -Desc > FileExtensions.txt"
ฉันขอเครดิตไม่ได้แน่นอนและคุณจะต้องติดตั้ง Powershell สำหรับ Windows รุ่นใหม่ไม่มีอะไรเกี่ยวข้องกับเรื่องนี้
หากคุณลบC:\MyDirectory
มันจะดำเนินการในไดเรกทอรีปัจจุบัน
ในตอนท้ายมันจะสร้าง FileExtensions.txt ซึ่งบรรจุสิ่งต่อไปนี้:
+-------+------+
| Count | Name |
+-------+------+
| ----- | ---- |
| 8216 | .xml |
| 4854 | .png |
| 4378 | .dll |
| 3565 | .htm |
| ... | ... |
+-------+------+
ขึ้นอยู่กับโครงสร้างโฟลเดอร์ของคุณคุณอาจได้รับข้อผิดพลาดเป็นครั้งคราวเพื่อแจ้งให้คุณทราบว่าคุณมีเส้นทางยาว
Get-ChildItem : The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
ไดเรกทอรีย่อยใด ๆ ในนั้นจะไม่ถูกแยกวิเคราะห์ แต่ผลลัพธ์สำหรับทุกสิ่งจะยังคงแสดงอยู่