Cara Menghapus Folder Kosong Secara Otomatis di Windows

Seiring waktu, ratusan folder kosong dan file sampah mungkin memakan hard disk Anda. Sementara file sampah menempati ruang disk dan dapat dibersihkan menggunakan Disk Cleanup atau pengaturan Storage, direktori kosong tetap ada.

Folder kosong tidak memakan ruang disk, tetapi untuk mengatur data Anda lebih baik, Anda mungkin ingin memangkasnya sesekali.

Artikel ini membahas berbagai metode untuk menemukan dan menghapus folder kosong di komputer Anda.

Bagaimana Cara Menemukan dan Menghapus Folder Kosong di Windows?

Folder atau direktori kosong adalah direktori yang tidak memiliki file atau sub-direktori di dalamnya. Folder kosong tidak memakan ruang disk apa pun, tetapi terlalu banyak folder bisa menjadi gangguan. Untuk menemukan dan menghapusnya, gunakan salah satu metode di bawah ini.

Penting: Menjalankan alat atau file batch otomatis untuk menghapus folder kosong di seluruh drive sistem secara rekursif biasanya tidak disarankan. Ini karena beberapa program mungkin gagal berfungsi dan membuat kesalahan aneh ketika menemukan folder penting hilang. Seperti biasa, peringatan standar berlaku. Pastikan memiliki cadangan yang sesuai lebih disukai di drive eksternal, sebelum memanipulasi dengan sistem file atau registri Windows.

TERKAIT: Temukan dan hapus file 0-byte secara rekursif dalam folder di Windows

Mari kita mulai dengan alat GUI yang rapi, diikuti oleh baris perintah asli dan metode skrip.

1. Hapus folder kosong menggunakan utilitas "Find Empty Files-n-Folders"

Find Empty Files-n-Folders adalah alat yang luar biasa yang dapat menemukan dan menghapus file kosong (0-byte) dan folder kosong secara rekursif di bawah pohon folder.

Unduh Temukan File Kosong-n-Folder (pemasang 600KB) dari Ashisoft.com.

Pilih folder dan klik Scan Now.

Alat ini akan mencantumkan file dan folder kosong di tab terpisah.

Klik Tandai semua Folder lalu klik Hapus Folder .

Demikian pula, untuk menghapus file 0-byte di pohon folder yang dipilih, klik pada tab File Kosong .

Ashisoft.com memiliki alat luar biasa lainnya yang dapat Anda periksa!


2. Hapus folder kosong menggunakan perintah "untuk" dan "rd"

Anda dapat menggunakan perintah internal Prompt Perintah for dan rd untuk menyebutkan daftar folder dan menghapus yang kosong.

  1. Tekan & tahan tombol Shift, klik kanan pada folder dan klik Buka jendela perintah di sini . Ini membuka Command Prompt di lokasi folder saat ini, yang juga dapat memverifikasi di konsol. Catatan: Anda harus memastikan bahwa Anda menjalankan perintah berikut dari jalur folder induk yang tepat di mana Anda perlu menemukan dan menghapus sub-folder kosong.
  2. Setelah Anda berada di direktori yang diinginkan di Command Prompt, jalankan baris perintah ini:
     untuk / f "delims ="% i in ('dir / s / b / ad ^ | sort / r') lakukan rd "% i" 2> NUL 

    Ini menghapus semua direktori kosong di seluruh subdirektori dari jalur folder dasar, termasuk folder kosong bersarang.

Baris perintah di atas adalah milik Raymond Chen dari Microsoft, melalui blog-nya The Old New Thing. Dalam posting ini, baris perintah Raymond telah sedikit dimodifikasi sehingga juga menghapus nama folder yang mengandung spasi.

Bagaimana cara kerjanya?

Perintah di atas daftar semua sub-direktori (secara rekursif) di jalur basis saat ini, dan mengurutkan daftar ( sort /r ) dalam urutan terbalik. Urutan urutan terbalik adalah untuk memastikan bahwa penghitungan dilakukan dari bawah ke atas. Ini penting untuk menghapus direktori kosong, karena Anda harus menghapus subdirektori sebelum Anda menghapus induknya.

Kemudian ia mencoba untuk menghapus daftar direktori (dalam urutan urutan terbalik) menggunakan perintah RD . Jika suatu direktori tidak kosong, ia melanjutkan ke direktori berikutnya dan seterusnya. Perintah 2>NUL memastikan bahwa teks keluaran "direktori tidak kosong" ditekan.

$config[ads_text6] not found

Satu-satunya kelemahan dari metode di atas adalah tidak membantu jika Anda hanya ingin menemukan folder kosong tanpa menghapusnya. Jika Anda ingin menemukan daftar folder kosong, gunakan baris perintah pada paragraf di bawah ini, atau ikuti metode lain yang dijelaskan dalam artikel ini.

Temukan folder kosong, tetapi jangan dihapus

Untuk hanya menemukan folder kosong tanpa menghapusnya, gunakan sintaks baris perintah ini:

 untuk / r "D: \ unggah \ 2019" / d% F di (.) lakukan @dir / b "% F" | findstr "^"> nul || gema% ~ fF 

Ini menunjukkan kepada Anda output yang berisi daftar direktori kosong.

Katakanlah Anda memiliki folder bersarang kosong seperti ini:

 C: \ 1 └───2 └───3 └───4 

Menjalankan perintah di atas hanya mencantumkan folder paling kosong yang paling dalam → 4 . Secara teknis, ini benar karena folder tidak dapat dianggap kosong jika ada sub-folder atau file di dalamnya.


3. Temukan dan hapus folder kosong menggunakan perintah Robocopy

Robocopy adalah alat penyalin file bawaan yang kuat yang memiliki banyak fitur canggih. Kami telah membahas Robocopy dalam artikel Bandingkan Isi Dua Folder di Windows.

Mari kita asumsikan Anda memiliki folder bernama cars yang berisi beberapa sub-folder yang beberapa di antaranya kosong. Kami akan menghapus yang kosong menggunakan Robocopy.

Kuncinya di sini adalah dengan menggunakan perintah Robocopy move, melewati jalur folder yang sama persis untuk kedua sumber maupun tujuan.

  1. Buka jendela Command Prompt
  2. Ketikkan perintah berikut dan tekan ENTER:
     robocopy "d: \ tarif mobil \ mobil" "d: \ tarif mobil \ mobil" / S / pindah 

    Hal yang paling penting untuk dicatat di sini adalah bahwa sumber dan jalur tujuan (sengaja) sama. Parameter /S memerintahkan Robocopy untuk tidak memindahkan folder kosong ke jalur "tujuan". Seperti yang telah kami sebutkan jalur yang sama untuk sumber dan tujuan, Robocopy hanya akan menghapus folder kosong karena adanya sakelar /S

Folder kosong di jalur yang dipilih sekarang dihapus.

Ingin menemukan folder kosong tetapi tidak menghapusnya?

Anda dapat menggunakan argumen baris perintah /L (hanya daftar) dengan Robocopy sehingga hanya menjalankan proses yang kering alih-alih melakukan operasi penyalinan / pemindahan yang sebenarnya.

/L :: Daftar saja - jangan salin, cap waktu, atau hapus file apa pun.

/MOVE :: MOVE file AND dirs (hapus dari sumber setelah menyalin).

/S :: salin Subdirektori, tetapi yang kosong tidak.

Anda dapat melihat jumlah file dalam kolom mendengar jalur folder. Angka 0 berarti bahwa folder tersebut tidak memiliki file.

Mari kita berikan perintah ini ke ujian nyata!

Folder %APPDATA% saya penuh dengan folder kosong yang ditambahkan oleh program yang sudah usang.

Sebelum pembersihan, folder Appdata \ Roaming memiliki 681 folder, seperti yang terlihat di properti folder.

Saya membuka Command Prompt, dan menjalankan perintah berikut:

 robocopy "% appdata%" "% appdata%" / S / MOVE 

Catatan:% appdata% variabel lingkungan diterjemahkan menjadi C:\Users\{username}\AppData\Roaming folder. Anda dapat menggunakan path folder lengkap atau variabel lingkungan yang setara dengan Robocopy. Baik baik saja.

Ini telah berhasil menghapus 94 folder kosong di folder dan sub-folder %APPDATA% saya.

Catatan editor: Pada output baris perintah di bawah bagian statistik, kesalahan berikut muncul:

“ERROR 32 (0x00000020) Menghapus Direktori Sumber C: \ Users \ ramesh \ AppData \ Roaming \

Proses tidak dapat mengakses file karena sedang digunakan oleh proses lain. "

Karena kami telah menginstruksikan Robocopy untuk memindahkan ( /MOVE ) direktori% APPDATA%, alat itu mencoba untuk membersihkan folder "sumber" setelah "memindahkan" ke tujuan. Tidak bisa, karena% APPDATA% adalah folder khusus. Kesalahan tidak terjadi ketika menggunakan jalur direktori yang bukan folder khusus. Karena semuanya berjalan dengan baik, saya mengabaikan kesalahan (sepele).

$config[ads_text6] not found

4. Temukan dan Hapus folder kosong menggunakan PowerShell

Baris perintah PowerShell berikut menghapus folder kosong yang terletak di bawah folder dasar yang ditentukan secara rekursif.

  1. Mulai PowerShell dan ketik perintah berikut:
     (gci "folderpath" -r |? {$ _. PSIsContainer -eq $ True}) | ? {$ _. GetFileSystemInfos (). Hitung-eq 0} | hapus-item 

    Ganti "folderpath" dengan lokasi folder dasar. Misalnya, saya menetapkan folder Roaming di sini:

     (gci "C: \ Users \ ramesh \ AppData \ Roaming" -r |? {$ _. PSIsContainer -eq $ True}) | ? {$ _. GetFileSystemInfos (). Hitung-eq 0} | hapus-item 

    Ini menghapus semua sub-folder kosong di bawah folder %appdata% saya secara rekursif dan tidak menampilkan output apa pun, kecuali jika mengalami kesalahan.

Perhatikan bahwa perintah PowerShell di atas hanya membersihkan folder bersarang kosong tingkat terakhir. Sebagai contoh, katakanlah Anda memiliki folder bersarang kosong seperti ini:

 C: \ 1 └───2 └───3 └───4 

Menjalankan perintah di atas membersihkan folder paling kosong yang paling dalam → 4 . Menjalankan skrip lagi akan menghapus level lain folder bersarang ( 3 ), dan sebagainya.

Anda dapat menggunakan skrip PowerShell di Svendsen Tech PowerShell Wiki untuk bekerja dengan folder bersarang.

Sebagai alternatif, Anda dapat menggunakan metode selanjutnya, solusi Windows Scripting untuk menghapus semua folder kosong termasuk yang bersarang secara rekursif.

Temukan folder kosong, tetapi tidak ingin menghapusnya?

Ingin mendapatkan daftar folder kosong, tetapi tidak ingin menghapusnya? Gunakan contoh baris perintah ini sebagai gantinya:

 (gci "C: \ Users \ ramesh \ AppData \ Roaming" -r |? {$ _. PSIsContainer -eq $ True}) | ? {$ _. GetFileSystemInfos (). Hitung-eq 0} | pilih Nama Lengkap | Out-GridView 

Perintah menampilkan daftar folder kosong dengan path lengkap ke kontrol tampilan grid.

Tip: Pada tampilan kisi, Anda dapat memilih semua dan menyalin pilihan dengan menekan Ctrl + C

Sebaiknya pratinjau daftar sebelum menjalankan perintah untuk menghapus folder.


5. Temukan dan Hapus folder kosong menggunakan Windows Scripting

Karyawan Microsoft Jeremy Jameson menulis VBScript yang menghapus folder kosong secara rekursif. Saya telah menambahkan lebih banyak baris dalam skrip sehingga memaksa menghapus direktori read-only yang kosong, mengeluarkan daftar agregat folder kosong. Ini juga menampilkan daftar folder kosong yang tidak bisa dihapus, bersama dengan deskripsi kesalahan yang sesuai.

Script ini mampu menghapus direktori kosong yang bersarang di seluruh sub-folder.

 Opsi Eksplisit Jika (WScript.Arguments.Count 1) Kemudian WScript.Echo ("Penggunaan: cscript DeleteEmptyFolders.vbs {path}") WScript.Quit (1) Berakhir Jika Dim strPath: strPath = WScript.Arguments (0) Dim fso: Set fso = CreateObject ("Scripting.FileSystemObject") Dim objFolder: Set objFolder = fso.GetFolder (strPath) Dim sDelList, sDelErr, sDelErr Dim, iCnt iCnt = 0 DeleteEmptyFolders objFolder Sub DeleteEmptyFolders Subfolder pada folder Subfolder Berlanjut (kesalahan folder) ketika mengakses Persimpangan, dll. Untuk Setiap subfolder Dalam folder. Subfolder HapusEmptyFolder Subfolder Berikutnya Pada Kesalahan Goto 0 Jika folder.SubFolders.Count = 0 Dan folder.Filen. 0 Jumlah .Path, True If Err.number 0 Kemudian sDelErr = sDelErr & Err.number & ":" & Err.description & _ vbCrLf & sFolderPath & vbCrLf & vbCrLf Else sDelList = sDelList & vbCrFc & sFolder t = iCnt + 1 End If On Error Goto 0 End If End Sub If sDelList = "" Dan sDelErr = "" Kemudian WScript.Echo "Tidak ada folder kosong ditemukan di bawah" & _ "" "" & strPath & "" "" & "tree" WScript.Quit End If If sDelList "" lalu sDelList = "Daftar folder kosong dihapus" & vbCrLf _ & String (38, "-") & vbCrLf & sDelList & vbCrLf & _ vbCrLf & "Total:" & iCnt & "folder dihapus." Jika sDelErr "" maka sDelErr = "Folder-folder ini tidak dapat dihapus" & _ vbCrLf & String (45, "-") & vbCrLf & sDelErr WScript.Echo sDelList & vbCrLf & sDelErr 

Salin kode di atas ke Notepad dan simpan file dengan ekstensi .vbs, misalnya delempty.vbs .

Anda dapat menjalankan skrip menggunakan 2 cara:

melalui Command Prompt, dengan menjalankan:

 cscript.exe delempty.vbs "folder_path" 

via GUI, dengan menjalankan:

 wscript.exe delempty.vbs "folder_path" 

melalui menu Kirim Ke

Anda dapat membuat pintasan ke skrip di folder SendTo Anda, dan beri nama sebagai Delete Empty Folders .

Kemudian, klik kanan pada folder di mana Anda ingin menghapus sub-folder kosong secara rekursif → klik Kirim Ke → klik Hapus Folder Kosong di menu Kirim Ke.

Anda akan melihat daftar folder kosong dihapus dan total, dan folder yang tidak dapat dihapus dengan kode kesalahan masing-masing ditampilkan.

Itu dia! Jika Anda tahu metode lain untuk menghapus folder kosong di Windows, beri tahu kami di bagian komentar di bawah.

$config[ads_text6] not found

Artikel Terkait