Saya mencari metode (tidak termasuk perangkat lunak berbayar) untuk menemukan semua folder yang hanya berisi file dengan yang juga di setidaknya satu sub-folder lain dari direktori induk. Jika digunakan di perpustakaan musik, ini akan mencantumkan semua album kompilasi.
Struktur file:
Folder artis
- Folder album
- - lagu dengan nama file sebagai judul
windows
file-management
deduplication
DDriggs00
sumber
sumber
Jawaban:
Anda dapat menggunakan PowerShell!
Script ini sedikit rumit, jadi mari kita teliti dengan seksama. Pertama, ia mendapatkan folder yang ditentukan sebagai argumen, secara rekursif menemukan file yang dikandungnya, mengelompokkannya berdasarkan nama file, hanya mengambil grup dengan lebih dari satu item (yaitu grup yang mewakili lagu yang digandakan), dan menyimpan koleksi grup dalam
$dupes
. Kemudian lagi mendapat direktori induk yang ditentukan, tetapi kemudian hanya daftar subfolder langsung. Ini memfilternya (?
), membiarkan hanya yang berisi entri yang digandakan keluar dari jalur pipa dan dicetak ke layar.Blok filter besar itu menghabiskan sebagian besar skrip, jadi mari kita lihat lebih detail. Itu dimulai dengan dua variabel, satu untuk melacak apakah folder album saat ini hanya berisi duplikat sejauh ini, dan lainnya untuk mencatat apakah sebenarnya ada lagu di folder tersebut. (Saya menduga tidak benar-benar membantu untuk menghitung folder kosong sebagai album kompilasi.) Ini mencantumkan file dalam folder album, kemudian untuk masing-masing folder tersebut (
%
), pastikan ada grup duplikat yang berisi file dengan nama yang sama , dan jika tidak (yaitu tidak ada yang keluar dari pipa pendek di dalamIf
), menunjukkan kegagalan dengan menetapkan$allDupes
ke false. Jika untuk-setiap blok tidak berjalan sama sekali, maka$hasAny
tetap salah. Akhirnya, blok filter besar mengevaluasi apakah semua item dalam album adalah duplikat dan sebenarnya ada di sana. Hasil dari ekspresi menentukan apakah folder album akan dimasukkan dalam output pipa luar.Perhatikan bahwa beberapa fitur PowerShell yang digunakan dalam skrip ini baru-baru ini diperkenalkan. Jika Anda menggunakan Windows 7,
-File
dan-Directory
switch tidak akan berfungsi. Ini bisa diselesaikan jika perlu.Untuk menggunakan skrip, simpan sebagai
.ps1
file, misalbumdupes.ps1
. Jika Anda belum melakukannya, ikuti instruksi di bagian Skrip yang Mengaktifkan wiki tag PowerShell . Kemudian Anda dapat menjalankannya dari prompt PowerShell di direktori tempat Anda menyimpannya, menyediakan jalur ke folder artis Anda:Anda akan mendapatkan output seperti ini:
sumber