Jak rekurencyjnie usunąć katalog z wiersza poleceń w systemie Windows?

Odpowiedzi:

342

deltreejeśli pamiętam mój DOS .


Wygląda na to, że został zaktualizowany ... oto, czego chcesz:

RMDIR /S

Spowoduje to usunięcie katalogu C:\testz monitami:

rmdir c:\test /s

To samo dzieje się bez monitów:

rmdir c:\test /s /q

Jeśli chodzi o część sudo twojego pytania, jeśli potrzebujesz więcej uprawnień, możesz najpierw otworzyć nową powłokę jako konto innego użytkownika za pomocą runaspolecenia, takiego jak to:

runas /user:Administrator cmd
rmdir c:\test /s /q
Colin Pickard
źródło
1
@FarmBoy, przepraszam, wygląda na to, że moje wspomnienia sięgają daleko wstecz. Zaktualizowałem odpowiedź dla systemu Windows XP i nowszych.
Colin Pickard
8
tak deltreeto stara komenda DOS. Został usunięty w XP i zastąpiony przezrmdir /s
heavyd
3
Co oznacza flaga / s?
Mike R
Z jakiegoś powodu istnieje problem, jeśli robisz to w PowerShell. Więc po prostu użyj wiersza poleceń systemu Windows.
Devid
3
@MikeR, może oznaczać „podkatalogi” lub coś w tym rodzaju. findstrma ten sam parametr, co jest bardziej sensowne niż jego przypadek, więc może są takie same dla spójności.
Sam
57

Jeśli chcesz usunąć długą i skomplikowaną strukturę folderów z wiersza polecenia, której RmDir nie dotknie i nawet eksplorator nie może wyświetlić, zauważyłem, że robocopy może bardzo skutecznie usuwać strukturę. W poniższym przykładzie mamy ogromną strukturę wewnątrz administratora folderu, struktura jest tak głęboka, że ​​nic nie może jej usunąć. Tworzymy nowy pusty folder o nazwie (co dziwne!) „Nowy folder”. Następnie używamy polecenia robocopy, informując, że folder źródłowy to „nowy folder”, a folder docelowy to „D: \ Administrator” z parametrem / MIR, co oznacza, że ​​usunie wszystko, co nie znajduje się w folderze źródłowym.

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

W tym przypadku ścieżki folderów były tak długie, że nawet nie zmieściłyby się w oknie wiersza polecenia Bufor ekranu, ale Robocopy przejdzie przez strukturę i usunie wszelkie „dodatkowe” pliki i foldery (tj. Niczego, co nie jest w nowym pustym folderze, co jest wszystkim ).

Sean
źródło
11
Jest to jedyne rozwiązanie, które zadziała, gdy Twoja ścieżka będzie miała ponad 250 znaków nieparzystych
Calm Storm
10

W systemie Windows Vista + możesz wykonać następujące czynności:

rm C:\path\to\delete -r -f[orce]
Devesh Khandelwal
źródło
6
Windows 10 mówi, że -fjest niejednoznaczny. Ale możesz biegaćrm -r -force <path>
BrunoLM,
6

Dla mnie to, co działa

del /s dir

Możesz dodać, /qaby wyłączyć potwierdzenie. Nigdy nie udało mi się zacząć rmdirdziałać (na XP)

Vincent Fourmond
źródło
6
Prawdopodobnie powinieneś przestać używać XP, nie jest już obsługiwany ...
Eric Wilson
3
Dla mnie to usuwa rekursywnie wszystkie pliki, ale nie usuwa samych katalogów - nie dirjest również usuwane.
sergiol,
2

Jeśli masz naprawdę bardzo długą ścieżkę (tak jak ja z powodu błędu programu Java), nawet robocopy nie może tego zrobić. Zszedł na około 30 sekund na moją ścieżkę, a następnie zawiesił się.

Moje rozwiązanie: jeśli możesz przenieść całą ścieżkę problemu z jednego folderu do drugiego, możesz rekurencyjnie i wielokrotnie odcinać niektóre schody katalogu od góry.

Ta partia gra w pingpong między dwoma katalogami leer i leer2 i odcina za każdym razem 8 „bibliotek”. Jeśli ścieżka zawiera pliki, musisz dodać kolejne polecenia, aby je usunąć.

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
źródło
2

Z CMD Wystarczy uruchomić RD / s C: \ path \ to \ usunąć Hit Y do pytania

/ s zapewnia również usunięcie wszystkich podkatalogów.

Odwołanie Uruchom pomoc RD z wiersza polecenia

Rachit Ranjan
źródło
2
Dziękuję za odpowiedź, ale ta informacja była już w zaakceptowanej odpowiedzi. ( rdi rmdirsą takie same.) Być może pasowałby tam komentarz.
Ben N
0

Spowoduje to usunięcie „mojego folderu” bez pytania:

rd /s /q "C:\Users\gourav.g\AppData\Roaming\my folder"
JerryGoyal
źródło