Löschen Sie Dateien oder Ordner rekursiv unter Windows CMD


135

Wie lösche ich Dateien oder Ordner unter Windows rekursiv über die Befehlszeile?

Ich habe diese Lösung gefunden, in der wir den Pfad über die Befehlszeile fahren und diesen Befehl ausführen.

Ich habe ein Beispiel mit einem .svn-Dateierweiterungsordner gegeben:

for /r %R in (.svn) do if exist %R (rd /s /q "%R")

Was meinst du mit "wohin wir fahren" ?
Peter Mortensen

Antworten:


129

Bitte führen Sie die folgenden Schritte aus:

  1. Öffnen Sie die Eingabeaufforderung
  2. Wechseln Sie in das gewünschte Verzeichnis
  3. Geben Sie den folgenden Befehl ein

    del /S *.svn
    

4
Funktioniert bei mir nicht, löscht nur die Dateien im aktuellen Verzeichnis.
Delphirules

118

Die anderen Antworten haben bei mir nicht funktioniert, aber das hat funktioniert:

del /s /q *.svn
rmdir /s /q *.svn

/ q deaktiviert die Ja / Nein-Eingabeaufforderung

/ s bedeutet, dass die Datei (en) aus allen Unterverzeichnissen gelöscht werden.


Ich denke, meine Anforderungen sind die gleichen wie die, die Sie versuchen - ich versuche, alle .svn-Ordner in einem Projektverzeichnis und alle Unterverzeichnisse zu löschen. Unter Windows 2012 funktioniert diese Antwort bei mir nicht. Es wird der Ordner .svn im aktuellen Verzeichnis gelöscht, jedoch nicht aus einem der untergeordneten Verzeichnisse.
Jim

42

Sie können dies im batSkript verwenden:

rd /s /q "c:\folder a"

Wechseln c:\folder aSie jetzt einfach zum Speicherort Ihres Ordners. Ein Zitat ist nur erforderlich, wenn Ihr Ordnername Leerzeichen enthält.


Dieser Befehl funktioniert nicht und löst den folgenden Fehler aus : D: \> rd / s / q "D: \ Root a" Das System kann die angegebene Datei nicht finden.
Abhayk

5
Wenn Ihr Verzeichnis nicht wirklich einen space aNamen enthält, lassen Sie diesen Teil weg.
Jesse Chisholm

22
RMDIR path_to_folder /S

Ex. RMDIR "C:\tmp" /S

Beachten Sie, dass Sie gefragt werden, ob Sie den Ordner "C: \ tmp" wirklich löschen möchten. Wenn Sie es mit dem Schalter / Q kombinieren, wird der Ordner stillschweigend entfernt (z. B. RMDIR "C:\tmp" /S /Q).


8

Zum Löschen von Dateien habe ich folgende einfache Batch-Datei geschrieben, in der alle PDFs rekursiv gelöscht wurden:

del /s /q "\\ad1pfrtg001\AppDev\ResultLogs\*.pdf"
del /s /q "\\ad1pfrtg001\Project\AppData\*.pdf"

Sogar für das lokale Verzeichnis können wir es verwenden als:

del /s /q "C:\Project\*.pdf"

Dasselbe kann für das Löschen von Verzeichnissen angewendet werden, bei denen del nur mit rmdir geändert werden muss .


4

Wenn Sie eine bestimmte Erweiterung rekursiv löschen möchten, verwenden Sie Folgendes:

For /R "C:\Users\Desktop\saleh" %G IN (*.ppt) do del "%G"

3

Sie könnten auch tun:

del /s /p *.{your extension here}

Das /pfordert Sie zu jeder gefundenen Datei auf, wenn Sie nervös sind, etwas zu löschen, das Sie nicht sollten.


2

Verwenden Sie den Windows- Befehl rmdir

Das heißt, rmdir / S / Q C: \ Temp

Ich benutze auch die folgenden seit einigen Jahren einwandfrei.

Weitere Optionen finden Sie unter: forfiles /?

Löschen Sie SQM / Telemetrie im Windows-Ordner rekursiv

forfiles /p %SYSTEMROOT%\system32\LogFiles /s /m *.* /d -1 /c "cmd /c del @file"

Löschen Sie Windows-TMP-Dateien rekursiv

forfiles /p %SYSTEMROOT%\Temp /s /m *.* /d -1 /c "cmd /c del @file"

Löschen Sie Benutzer-TEMP-Dateien und -Ordner rekursiv

forfiles /p %TMP% /s /m *.* /d -1 /c "cmd /c del @file"


2

Zum vollständigen Löschen eines Ordners mit nativen Befehlen und zum Abrufen eines Protokolls darüber, was getan wurde.

Hier ist eine ungewöhnliche Methode:

Nehmen wir an, wir möchten das Verzeichnis d: \ temp löschen

mkdir d:\empty
robocopy /mir d:\empty d:\temp
rmdir d:\empty

Dies ist eine sehr clevere Lösung, die mein Problem gelöst hat. Ich habe Robocopy verwendet, um mein AppData-Verzeichnis zu kopieren, ohne an die selbstreferenzierende Junction zu denken. Nur so konnte ich alle versteckten Dateien rekursiv entfernen. Vergiss niemals das / xj!
Chris Larabell

0

Für versteckte Dateien musste ich folgendes verwenden:

DEL /S /Q /A:H Thumbs.db

Veraltet. Windows XP wird von Microsoft Co. nicht lange unterstützt.
Mesalcode

Ich musste dies verwenden, um .dcm-Dateien zu löschen, die von einer Sicherungswiederherstellung (Windows 10) übrig geblieben waren
Gerald Murphy

0
dir /b %temp% >temp.list
for /f "delims=" %%a in (temp.list) do call rundll32.exe advpack.dll,DelNodeRunDLL32 "%temp%\%%a"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.