Bagaimana cara menghapus direktori dari baris perintah di windows secara rekursif?

Jawaban:

342

deltreejika saya ingat DOS saya .


Tampaknya sudah diperbarui ... ini yang Anda inginkan:

RMDIR /S

Ini menghapus direktori C:\test, dengan petunjuk:

rmdir c:\test /s

Ini melakukan hal yang sama, tanpa diminta:

rmdir c:\test /s /q

Mengenai bagian sudo dari pertanyaan Anda, jika Anda membutuhkan lebih banyak hak istimewa, Anda dapat membuka shell baru sebagai akun pengguna lain menggunakan runasperintah, seperti ini:

runas /user:Administrator cmd
rmdir c:\test /s /q
Colin Pickard
sumber
1
@FarmBoy, permintaan maaf, sepertinya ingatanku terlalu jauh ke belakang. Saya telah memperbarui jawaban untuk Windows XP dan yang lebih baru.
Colin Pickard
8
ya deltreeadalah perintah DOS lama. Itu dihapus di XP dan diganti olehrmdir /s
heavyd
3
Untuk apa bendera itu?
Mike R
Untuk beberapa alasan ada masalah jika Anda melakukan ini di Powershell. Jadi gunakan saja Command Line of Windows.
Devid
3
@ MikeR, itu mungkin singkatan dari "subdirektori" atau sesuatu. findstrmemiliki parameter yang sama, yang lebih masuk akal hal ini terjadi, jadi mungkin mereka hanya sama untuk konsistensi.
Sam
57

Jika Anda ingin menghapus struktur folder yang panjang dan rumit dari command prompt yang tidak dapat disentuh oleh RmDir dan bahkan explorer tidak dapat ditampilkan, saya menemukan robocopy bisa sangat efisien dalam menghilangkan struktur. Dalam contoh di bawah ini kami memiliki struktur besar di dalam folder administrator, strukturnya sangat dalam sehingga tidak ada yang bisa menghapusnya. Kami membuat folder kosong baru yang disebut (anehnya!) "Folder baru". Kami kemudian menggunakan perintah robocopy, mengatakan bahwa folder sumber adalah "folder baru" dan folder tujuan adalah "D: \ Administrator" dengan parameter / MIR yang berarti akan membersihkan apa pun yang tidak ada di folder sumber.

robocopy "D:\new folder" D:\Administrator /MIR

Dalam hal ini jalur folder sangat panjang sehingga tidak akan muat di jendela command prompt Screen Buffer, tetapi Robocopy akan melintasi struktur dan menghapus semua file dan folder "ekstra" (yaitu apa pun yang tidak ada di folder kosong yang baru, yang merupakan segalanya ).

Sean
sumber
11
Ini adalah satu-satunya solusi yang akan bekerja ketika jalur Anda lebih dari 250 karakter aneh
Calm Storm
10

Anda dapat melakukan hal berikut ini di PowerShell, jika Anda menggunakan Windows Vista +:

rm C:\path\to\delete -r -f[orce]
Devesh Khandelwal
sumber
6
Windows 10 dikatakan -fambigu. Tapi Anda bisa larirm -r -force <path>
BrunoLM
6

Bagi saya, apa yang berhasil

del /s dir

Anda dapat menambahkan /quntuk menonaktifkan konfirmasi. Saya tidak pernah berhasil rmdirbekerja (di XP)

Vincent Fourmond
sumber
6
Anda mungkin harus berhenti menggunakan XP, itu tidak didukung lagi ...
Eric Wilson
3
Bagi saya, ini menghapus semua file secara rekursif, tetapi tidak menghapus direktori itu sendiri - dirjuga tidak dihapus.
sergiol
2

Jika Anda memiliki jalan yang sangat panjang, (seperti yang saya lakukan karena kesalahan program java), bahkan robocopy tidak dapat melakukannya. Itu turun sekitar 30 detik ke jalan saya dan kemudian digantung.

Solusi saya: jika Anda dapat memindahkan seluruh jalur masalah dari satu folder ke folder lain, maka Anda dapat memotong secara berulang dan berulang kali beberapa tangga direktori dari atas.

Batch ini memainkan pingpong antara dua direktori leer dan leer2 dan memotong 8 'libraries' setiap kali. Jika jalur Anda berisi file, Anda harus menambahkan perintah lebih lanjut untuk menghapusnya.

recurdel.cmd
:loop
move c:\leer\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer2
rd /S /Q c:\leer\libraries
move c:\leer2\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer
rd /S /Q c:\leer2\libraries
GOTO loop
Paulmann
sumber
2

Dari CMD Cukup jalankan RD / s C: \ path \ to \ delete Hit Y ke prompt

/ s memastikan semua sub direktori juga dihapus.

Referensi Jalankan bantuan RD dari baris perintah

Rachit Ranjan
sumber
2
Terima kasih atas jawaban Anda, tetapi informasi ini sudah ada dalam jawaban yang diterima. ( rddan rmdirsama.) Mungkin itu akan cocok sebagai komentar di sana.
Ben N
0

Ini akan menghapus "folder saya" tanpa prompt:

rd /s /q "C:\Users\gourav.g\AppData\Roaming\my folder"
JerryGoyal
sumber