Apa cara terbaik untuk menghapus 100.000 file dari Direktori Windows

12

Saya memiliki pengguna dengan lebih dari 100.000 file dalam satu direktori. Mesin terkunci dan menjadi tidak dapat digunakan untuk waktu yang lama sementara Explorer mengisi memori dan mesin dapat macet. Apakah ada cara sederhana untuk membuang direktori dan konten? Kami mencoba menggunakan deltree baris perintah dan ini tidak jauh lebih baik.

DaveF

Ekstra -

Kami telah mengalami masalah ini beberapa kali dengan pengguna yang sama (sebenarnya klien). Suatu program menciptakan 100-an-ribu file temp selama menjalankannya. Jika program bekerja dengan benar, itu tidak masalah karena mereka dihapus melambat karena selesai dengan ini Tapi kadang-kadang mati meninggalkan kekacauan file. Kami telah mencoba menggunakan metode rmdir dan del dll dan mereka lebih cepat daripada menggunakan explorer tetapi kami biasanya berakhir dengan masalah yang sama. Partisi rusak, ada file terkunci yang tidak dapat dijelaskan, beberapa file memiliki masalah izin, yang menghentikan penghapusan agar tidak berfungsi. Biasanya masalah ini dapat diperbaiki dengan reboot tetapi dalam kasus ini karena ini adalah sistem kritis yang tidak dapat kami lakukan dalam waktu produksi. Pada Unix Anda hanya dapat melakukan rm -rf dll dan ini cepat dan umumnya tidak ada masalah dengannya.

BTW - aplikasi sedang diubah tetapi ini tidak akan diproduksi untuk beberapa waktu dan saya pikir masalah ini mungkin menarik bagi orang lain.

Pembaruan - karena kami memiliki MKS Nutcracker pada sistem (tanpa utilitas baris perintah) kami membuat programmer untuk mengetuk bersama rm sederhana. Ini adalah beberapa perintah lebih cepat dari del / deltree dll. Saya merasa aneh bahwa tidak ada aplikasi sederhana yang tersedia sebagai alat admin sistem windows standar.

David Allan Finch
sumber

Jawaban:

15

Anda bisa menggunakan rmdir:

rmdir /s /q FOLDERNAME

Bendera: /sberarti menghapus secara rekursif, /qadalah mode "senyap".

percikan
sumber
Kami sudah mencoba ini - saya akan menambahkan lebih banyak ke pertanyaan.
David Allan Finch
ini seharusnya bekerja untuk Anda. Apa itu bekerja ?
s_ruchit
ya kebanyakan - saya telah menambahkan masalah apa yang telah kita lihat di atas dalam pertanyaan. terima kasih atas komentar Anda.
David Allan Finch
Saya akan menerima jawaban ini. Tetapi ada solusi yang lebih baik yaitu menggunakan rm unix style yang lebih sederhana tetapi karena ini tidak dapat dilakukan oleh sebagian besar pengguna, ini adalah pilihan terbaik bagi 99% pengguna. Seharusnya ada gaya unix yang diterapkan untuk windows yang tidak melakukan hal lain kecuali menghapus secara rekursif. BTW programmer kami MKS remove_tree (lihat di atas) meronta rmdir sehingga masalahnya bukan Windows tetapi aplikasi bawaan.
David Allan Finch
6

Saya menggunakan masalah ini dengan server yang saya kelola. Lewati explorer sama sekali dan gunakan command prompt. Arahkan ke folder dan "del . "

Dengan cara ini Anda menghindari overhead GUI (explorer is trash) dan Recycling bin.

pengguna3913
sumber
Kami sudah mencoba ini - saya akan menambahkan lebih banyak ke pertanyaan.
David Allan Finch
4

Kecuali jika Anda memerlukan ini untuk aplikasi 16-bit lama, cobalah untuk meningkatkan kinerja dengan menonaktifkan pembuatan nama file pendek. Ini dapat memiliki dampak yang signifikan pada operasi direktori dengan sejumlah besar file.

Regedt32 select:
"HKLM\system\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameC
reation"=1

Kemudian gunakan:

Jalur RMDIR / S / Q [drive:]

untuk menghapus direktori dengan semua file-nya.

Peter Stuer
sumber
Itu menarik untuk diketahui.
David Allan Finch
3

Bagaimana dengan memindahkan folder temp ke drive / partisi yang berbeda? Alih-alih menghapus semua sampah, Anda dapat memformat drive (baik GUI atau baris perintah). Dengan format cepat, ini seharusnya cukup cepat.


sumber
1
Kami mencoba ini dan kadang-kadang tidak mengizinkan ini. Klien sekarang menjalankan program di direktori yang berbeda setiap waktu.
David Allan Finch
Buat hardlink antara path & drive, yaitu: tautan keras "c: \ my konyol app \ di mana file disimpan" menunjuk drive X: dalam batch startup
Nime Cloud
2

Ini adalah kombinasi dari posting sebelumnya

buka jendela perintah:
File -> Run -> cmd

Hapus direktori
rmdir /s /q FOLDERNAME

ATAU

Hapus pola file
cd \....\directory
del *.[something]

Seperti yang telah Anda catat dalam pertanyaan Anda Windows Explorer benar-benar dapat memperlambat segalanya.

Setelah melihat pembaruan Anda, saya memiliki salah satu dari saya sendiri.
Periksa daftar penghapus file ini

Brad Bruce
sumber
Saya telah memperhatikan ini dengan hanya 100-an file di masa lalu itu memalukan bahwa penjelajah dapat dibuat untuk melakukannya secepat aplikasi baris perintah - mereka kita bisa mendapatkan klien untuk melakukannya sendiri. Terima kasih atas jawaban anda.
David Allan Finch
1

Saya tidak memiliki yang lebih baik daripada del dan rm, tetapi bahkan jika mereka membutuhkan waktu yang sangat lama, itu tidak akan mengakibatkan kerusakan partisi. File-file yang terkunci mungkin karena program yang membuatnya mati mendadak.

Terkadang, meskipun file tidak dapat dihapus, mereka dapat dipindahkan ke subdirektori sementara lainnya. Saya hanya membuat subdirektori _todel dan memindahkannya ke sana. Biasanya berfungsi lebih baik jika saya memindahkan seluruh direktori satu tingkat ke atas, daripada file itu sendiri.

Selain itu, satu-satunya cara untuk menghapus lebih cepat adalah dengan mendefrag hard disk. Solusi sementara mungkin untuk memindahkan direktori ini ke share samba, atau menggunakan persimpangan NTFS ke hard disk USB portabel. (Partisi kecil akan lebih baik dan lebih cepat daripada menggunakan seluruh hard disk). Anda kemudian dapat mengeluarkan hard disk, dan melakukan format cepat pada PC lain.

chayim
sumber
Itulah yang saya pikirkan - IE file yang rusak tetapi mengapa mereka tidak ditutup oleh NT Kernel? Kecepatan adalah masalah dengan program sehingga menggunakan Samba atau hard disk USB bukan merupakan starter. Tetapi klien telah disarankan untuk membuat partisi terpisah untuk setiap proses dan memformat ulang. Tidak yakin apakah mereka sudah mencobanya. - Terima kasih
David Allan Finch
1

Partisi yang rusak karena menghapus file? Itu masalah utama dengan disk, terlepas dari jumlah file yang dihapus.

Saya akan mencoba menghapus baris perintah dan menghapus sebanyak yang Anda bisa sampai Anda menemukan satu yang terkunci. Kemudian gunakan Process Explorer untuk menemukan proses apa yang membuka file itu. Matikan proses itu (jika Anda bisa), lalu lakukan hapus lagi. Bilas, ulangi :)

DougN
sumber
Ingin mencoba ini, tetapi kami tidak memiliki akses langsung ke mesin dan aplikasi telah mati. Bagaimanapun, terima kasih.
David Allan Finch
1

Reboot menggunakan CD Linux 'Live', rm -rf


sumber
Kami tidak bisa hanya me-reboot server ini karena sangat penting untuk klien - tetapi terima kasih atas jawabannya.
David Allan Finch
1

Agak hacky, tetapi Anda dapat membuat skrip yang akan memotong menghapus file, saya tidak tahu formatnya, tetapi dengan asumsi file itu dimulai dengan huruf az, Anda dapat melakukan

deltree /y a*
deltree /y b*
...
deltree /y z*

ubah deltree dengan metode penghapusan pilihan Anda. mungkin lebih lambat, tetapi lebih sedikit kesalahan rawan?

sidenote: Anda juga dapat mencoba menginstal cygwin untuk mendapatkan perintah seperti rm yang mungkin akan terus menghapus file bahkan setelah menemukan kesalahan dengan satu file.

Roy Rico
sumber
Ini sudah dicoba tetapi tidak benar-benar menyelesaikan masalah - terima kasih.
David Allan Finch
Kami juga telah menginstal MKS Nutcracker tetapi untuk alasan keamanan utilitas baris perintah di mana dihapus - bukan pilihan. Tetapi apa yang kami lakukan adalah menulis sendiri dan ini berhasil.
David Allan Finch
1

Berbagai metode di atas semuanya berfungsi. Jika Anda memiliki cygwin yang dimuat di thumb drive, Anda bisa mencolokkannya ke USB lokal Anda, jalankan shell cygwin Anda dan jalankan perintah RM seperti yang disebutkan di atas. Ini adalah cara praktis untuk menjaga fleksibilitas unix tetap dekat.

pengguna13846
sumber
Ini adalah solusi yang masuk akal ketika Anda mengelola sistem.
David Allan Finch
1

Anda juga bisa boot ke konsol pemulihan, atau sesuatu di sepanjang garis itu. Itu harus sepenuhnya mengabaikan masalah aneh dengan OS.

Yannone
sumber
Maaf kami tidak bisa hanya me-reboot server tetapi terima kasih atas jawabannya.
David Allan Finch
1

Pasang folder dari mesin linux dan lakukan penghapusan rekursif dari sana.

# mount -t cifs //server/share /mnt/tobedeleted -o username=yourshareusername

# rm /mnt/tobedeleted/* -R

Anda bahkan bisa menggunakan pekerjaan cron untuk menghapus file secara berkala.

steve
sumber
Sudahkah Anda mencoba ini?
David Allan Finch
1

Mengapa tidak menggunakan robocopy dan mirror direktori kosong?

Cukup buat folder kosong, lalu gunakan:

ROBOCOPY C:\ThisIsAnEmptyFolder C:\Users\SomeUser\Desktop\SomeFolderWithTempFiles /MIR
Noty Pyro
sumber
0

Jika tidak ada saran lain yang berfungsi, sudahkah Anda mempertimbangkan untuk mempercepat I / O Anda?

Beli pengontrol yang lebih baik, disk yang lebih cepat ..

Atau saya ingin tahu, apakah file tersebut bersifat sementara (seperti yang Anda maksudkan) dan ukuran mengizinkan, Anda dapat menambahkan RAM tambahan ke kotak (murah) dan mengatur disk RAM?

Kasus terbaik, kinerja tidak akan menurun ketika menghapus file dalam volume besar. Kasus terburuk, reboot akan menghapus partisi.

Tomfanning
sumber
Senang tapi saya tidak berpikir klien akan keluar karena mereka mengharapkan versi baru dari program ini - terima kasih atas jawabannya.
David Allan Finch
Server RAM di Inggris saat ini sekitar GBP 10 per gigabyte.
Tomfanning
Benar tetapi pelanggan membayar X untuk mesin (dari kutipan) dan tidak melihat alasan untuk menghabiskan Y lebih banyak.
David Allan Finch
Karena server yang ditentukan tidak melakukan pekerjaan dengan cukup baik?
tomfanning
Cukup bagus untuk pekerjaan itu. Masalahnya adalah program memiliki bug yang sedang dalam proses diperbaiki. Mereka tidak akan menghabiskan uang lagi.
David Allan Finch
0

Coba potong-rekatkan ke tempat sampah, itu harus memotong mencoba memindahkan setiap file. Tidak yakin apa yang akan dilakukan untuk mengosongkan bin karena karena itu mungkin akan membahas setiap file.

Erwin Blonk
sumber
Saya pikir klien mencoba ini dan itu tidak jauh lebih baik daripada menggunakan Explorer secara normal. Terima kasih
David Allan Finch
0

Apakah menghapus dengan SHIFT + DEL membuat perbedaan kecepatan?

Kevin Kuphal
sumber
Ketika saya mencobanya terakhir itu hampir sama.
David Allan Finch
Bahkan saya baru saja mencobanya lagi - dengan instalasi lama dan saya masih menunggu. Saya mungkin akan menyerah dan menggunakan MKS rm.
David Allan Finch