Wie rekursiv Verzeichnis von der Befehlszeile in Windows löschen?

235

Was ist das Windows-Äquivalent rm -r [directory-name]?

Eric Wilson
quelle

Antworten:

342

deltreewenn ich mich an mein DOS erinnere .


Es scheint, dass es aktualisiert wurde ... das ist, was Sie wollen:

RMDIR /S

Dadurch wird das Verzeichnis C:\testmit folgenden Eingabeaufforderungen entfernt:

rmdir c:\test /s

Dies funktioniert genauso ohne Aufforderungen:

rmdir c:\test /s /q

In Bezug auf den sudo-Teil Ihrer Frage können Sie, wenn Sie weitere Berechtigungen benötigen, zunächst eine neue Shell als ein anderes Benutzerkonto mit dem folgenden runasBefehl öffnen :

runas /user:Administrator cmd
rmdir c:\test /s /q
Colin Pickard
quelle
1
@ FarmBoy, entschuldige, es scheint, dass meine Erinnerungen viel zu weit zurückreichen. Ich habe die Antwort für Windows XP und neuer aktualisiert.
Colin Pickard
8
yes deltreeist ein alter DOS-Befehl. Es wurde in XP entfernt und durchrmdir /s
heavyd
3
Wofür steht die / s Flagge?
Mike R
Aus irgendeinem Grund gibt es ein Problem, wenn Sie dies in Powershell tun. Verwenden Sie einfach die Befehlszeile von Windows.
Devid
3
@MikeR, es könnte für "Unterverzeichnisse" oder so stehen. findstrhat den gleichen Parameter, was sinnvoller ist, vielleicht sind sie also für die Konsistenz gleich.
Sam
57

Wenn Sie eine lange und komplizierte Ordnerstruktur aus der Eingabeaufforderung löschen möchten, die RmDir nicht berührt und die nicht einmal der Explorer anzeigen kann, kann Robocopy die Struktur sehr effizient entfernen. Im folgenden Beispiel befindet sich eine massive Struktur innerhalb des Ordneradministrators. Die Struktur ist so tief, dass nichts sie entfernen kann. Wir erstellen einen neuen leeren Ordner, der (seltsamerweise!) "Neuer Ordner" heißt. Anschließend verwenden wir den Befehl robocopy und teilen ihm mit, dass der Quellordner "neuer Ordner" und der Zielordner "D: \ Administrator" mit dem Parameter / MIR ist. Dies bedeutet, dass alles gelöscht wird, was sich nicht im Quellordner befindet.

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

In diesem Fall waren die Ordnerpfade so lang, dass sie nicht einmal in das Eingabeaufforderungsfenster für den Bildschirmpuffer passten, aber Robocopy durchläuft die Struktur und entfernt alle "zusätzlichen" Dateien und Ordner (dh alles, was sich nicht im neuen leeren Ordner befindet, was alles ist) ).

Sean
quelle
11
Dies ist die einzige Lösung, die funktioniert, wenn Ihr Pfad mehr als 250 ungerade Zeichen lang ist
Calm Storm
10

In PowerShell können Sie unter Windows Vista + Folgendes tun:

rm C:\path\to\delete -r -f[orce]
Devesh Khandelwal
quelle
6
Windows 10 sagt, -fist mehrdeutig. Aber Sie können laufenrm -r -force <path>
BrunoLM
6

Was für mich funktioniert, ist

del /s dir

Sie können hinzufügen /q, um die Bestätigung zu deaktivieren. Ich habe es nie geschafft zu rmdirarbeiten (auf XP)

Vincent Fourmond
quelle
6
Sie sollten wahrscheinlich XP nicht mehr verwenden, es wird nicht mehr unterstützt ...
Eric Wilson
3
Bei mir werden dadurch alle Dateien rekursiv entfernt, aber die Verzeichnisse selbst werden nicht gelöscht - dirauch nicht entfernt.
Sergiol
2

Wenn Sie einen sehr, sehr langen Weg haben (wie ich es aufgrund eines Java-Programmfehlers getan habe), kann selbst eine Robokopie dies nicht. Es stieg ungefähr 30 Sekunden lang in meinen Weg und hing dann.

Meine Lösung: Wenn Sie den gesamten Problempfad von einem Ordner in einen anderen verschieben können, können Sie einige Verzeichnisstufen von oben rekursiv und wiederholt entfernen.

Dieser Batch spielt Pingpong zwischen den beiden Verzeichnissen leer und leer2 und schneidet jedes Mal 8 'Bibliotheken' weg. Wenn Ihr Pfad Dateien enthält, müssen Sie weitere Befehle hinzufügen, um sie zu löschen.

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
quelle
2

Von CMD Führen Sie einfach RD / s C: \ path \ to \ delete aus, und drücken Sie Y, um zur Eingabeaufforderung zu gelangen

/ s stellt sicher, dass auch alle Unterverzeichnisse gelöscht werden.

Referenz Führen Sie help RD über die Befehlszeile aus

Rachit Ranjan
quelle
2
Vielen Dank für Ihre Antwort, aber diese Information war bereits in der akzeptierten Antwort enthalten. ( rdund rmdirsind gleich.) Vielleicht würde es da als Kommentar passen.
Ben N
0

Dies löscht "meinen Ordner" ohne Aufforderung:

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