Pertanyaan ini sudah ada jawabannya di sini:
Istri saya memiliki beberapa file dan folder yang entah bagaimana berakhir dengan nama file yang menyebabkannya tidak dapat dihapus (tidak dapat dihapus) dengan cara biasa atau melalui baris perintah. Saya percaya nama file terlalu panjang karena kedalaman struktur folder. Adakah yang tahu utilitas yang bagus untuk membersihkan file seperti ini?
CTRL
+DELETE
adalah metode termudah menurut saya ...Jawaban:
Ketika Anda ingin sepenuhnya menghapus direktori dan berisi jalan yang panjang,
robocopy
lakukan pekerjaan yang SANGAT bagus:Ini berfungsi karena robocopy secara internal menggunakan versi Unicode-aware fungsi Win32, dengan
\\?\
awalan untuk path file ; fungsi-fungsi tersebut memiliki batas 2¹⁶-1 (32.767) karakter, bukan 259.Anda mungkin harus melalui proses ini lebih dari sekali untuk menyingkirkan semua file.
sumber
Dari prompt perintah:
Ini akan mencantumkan file / folder Anda dalam format nama pendek. Kemudian gunakan nama pendek persis seperti yang tertulis untuk menghapus file:
sumber
dir
ataucd ..
.dir
menggunakannyapushd
. Itu berhasil bagi saya.Saya progresivley bekerja dengan cara saya ke jalan, mengganti nama setiap folder orangtua berturut-turut menjadi "1" dan mencoba untuk menghapus. Anda secara efektif memperpendek jalur setiap kali dan saya tidak pernah harus bekerja dengan lebih dari 4 atau 5 direktori sampai saya akhirnya dapat menghapus seluruh struktur direktori (yang mungkin atau mungkin tidak seperti yang Anda inginkan). Anda dapat melakukan ini dari folder anak terakhir juga dan bekerja dengan cara naik atau turun.
sumber
mv * 1 && cd 1
. Ini tidak berfungsi ketika banyak file berada di direktori tetapi pada saat iturm -rf *
biasanya berhasil.Di beberapa program, termasuk Command Prompt (
cmd.exe
), Anda dapat menyiasati batas panjang file dengan mengawali path lengkap dengan\\.\
seperti ini:sumber
rm -rf \\directoryname
Trik yang saya gunakan untuk menyelesaikan batasan panjang "path lengkap dan nama file" untuk memindahkan, menyalin, atau menghapus sesuatu adalah dengan mempersingkatnya dengan 'membobol' setengah jalan ke bawah (atau lebih) menggunakan huruf drive yang dipetakan yang menunjuk ke folder. menuruni jalan setapak .
jadi Anda memiliki c: \ some \ long \ path ... \ dan \ foo \ bar \ folder \ oldfiles \ myoldfile.txt.
Kemudian memetakan huruf drive sewenang-wenang ke suatu tempat di sepanjang jalan sehingga potongan pertama jalur menjadi hanya beberapa karakter. Prasyarat - folder harus berada dalam folder bersama (yang mungkin sudah ada di server, yang mana saya harus lakukan ini), dan jika belum maka pilih folder di suatu tempat di jalan dan bagikan. Bergantung pada tingkat lingkungan dan paranoia Anda, izinkan semua orang memodifikasi akses ke share selama izin NTFS terbatas. Jika Anda mau, cukup izinkan modifikasi hak hanya ke akun Anda sendiri.
Sekarang buka folder bersama atau satu di dalamnya dan bagikan, atau gunakan baris perintah sebagai berikut. Anggap Anda membagikan folder "foo" sebagai "fooshare", maka Anda bisa melakukannya
dan drive X: sekarang menunjuk langsung ke folder "folder" di dalam share itu, jadi "x: \ oldfiles \ myoldfile.txt" sekarang cukup singkat.
("/ Persistent: no" berarti ini tidak akan selamat dari reboot berikutnya dan membingungkan Anda nanti. Jangan lupa untuk tidak membagikan folder Anda setelah selesai.)
Ingat, Anda tidak harus membagikan folder yang berisi file tersebut, jika sudah ada di dalam folder bersama, Anda bisa memetakan melalui share dan folder bersarang ke folder target di dekat file dan itu berfungsi dengan baik.
Saya harus menggunakan teknik ini melakukan robocopy besar antara dua server ketika kami menyadari bahwa pengguna telah memetakan drive cukup dalam di dalam struktur folder, sehingga mereka dapat menggunakan 255 karakter dari sana, tetapi itu melebihi total panjang jalur file ketika diakses dari root drive lokal.
sumber
subst x: C:\Some\first\part\of\the\long\path
dan setelah itu menghapus drive dengansubst x: /d
subst
trick tampaknya bekerja dengan baik, asalkan nama file tidak begitu lama untuk membuatnya pergi lebih dari 260 karakter bahkan pada akar drive.net use
, Anda dapat menggunakan share admin default:net use x: \\localhost\c$\bar\folders /persistent:no
Cara paling sederhana yang saya temukan adalah melakukan booting dari live CD ubuntu.
Sebagai alternatif, Anda dapat membuat folder bersama di tengah jalan dan kemudian memetakan drive jaringan untuk itu dan melakukan penghapusan dari folder yang dipetakan (bahkan pada mesin yang sama)
sumber
Ganti nama direktori cut / paste file di tempat lain, lalu hapus. Bekerja disini.
Atau hanya dari command prompt, jika Anda tidak ingin melalui masalah.
sumber
node_modules
folder super-bersarang ), seret keluar ke desktop Anda dan hapus. Bilas dan ulangi saat Anda membuka beberapa folder sekaligus. Benar-benar masalah yang menjengkelkan.Mungkin bukan cara terbaik dan saya tertarik untuk melihat apa yang orang lain buat -
Saya pernah memiliki ini dan saya mencoba beberapa hal tanpa hasil. Daripada mencari alat yang bagus, saya memulai kembali dengan Disk Windows, pergi ke konsol pemulihan dan hanya menghapusnya dari sana. Bekerja pertama kali dan sangat baik!
Juga, lakukan Google untuk Anda dan temukan ini - DelinvFile Terlihat Bagus tetapi tidak dapat menjaminnya.
Sunting - Peringatan, baru saja melihat di atas hanya percobaan - Mungkin tidak sebagus yang saya pikirkan!
sumber