it-swarm.com.de

So löschen Sie Dateien / Unterordner in einem bestimmten Verzeichnis an der Eingabeaufforderung in Windows

Angenommen, es gibt eine Variable mit dem Namen %pathtofolder%, da sie verdeutlicht, dass es sich um einen vollständigen Pfad eines Ordners handelt.

Ich möchte jede einzelne Datei und jeden einzelnen Unterordner in diesem Verzeichnis löschen, aber nicht das Verzeichnis selbst.

Es kann jedoch ein Fehler wie "Diese Datei/dieser Ordner wird bereits verwendet" auftreten. In diesem Fall sollte die Datei/der Ordner einfach fortgesetzt und übersprungen werden.

Kann mir jemand einen Befehl dafür geben?

279
Deniz Zoeteman

Mit diesem Shell-Skript können Sie den Ordner und die Dateien in C:\Tempsource bereinigen:

del /q "C:\Temp\*"
FOR /D %%p IN ("C:\Temp\*.*") DO rmdir "%%p" /s /q

Erstellen Sie eine Batch-Datei (z. B. delete.bat), die den obigen Befehl enthält. Wechseln Sie zu dem Speicherort, an dem sich die Datei delete.bat befindet, und führen Sie den folgenden Befehl aus: delete.bat

233
Iain

rmdir ist mein absoluter Lieblingsbefehl für den Job. Es funktioniert zum Löschen großer Dateien und Ordner mit Unterordnern. Es wird keine Sicherung erstellt. Stellen Sie daher sicher, dass Sie Ihre Dateien sicher kopiert haben, bevor Sie diesen Befehl ausführen.

RMDIR "FOLDERNAME" /S /Q

Dadurch werden im Hintergrund der Ordner sowie alle Dateien und Unterordner entfernt.

320
Suresh

Die einfachste Lösung, die ich mir vorstellen kann, ist das Entfernen des gesamten Verzeichnisses mit

RD /S /Q folderPath

Erstellen Sie dann dieses Verzeichnis erneut:

MD folderPath
83
wojciech_rak

Dadurch werden die Ordner und Dateien entfernt und der Ordner bleibt zurück.

pushd "%pathtofolder%" && (rd /s /q "%pathtofolder%" 2>nul & popd)
50
foxidrive
@ECHO OFF

Set dir=path-to-dir

Echo Deleting all files from %dir%
del %dir%\* /F /Q

Echo Deleting all folders from %dir%
for /d %%p in (%dir%\*) Do rd /Q /S "%%p"
@echo Folder deleted.


exit

... löscht alle Dateien und Ordner unterhalb des angegebenen Verzeichnisses, jedoch nicht das Verzeichnis selbst.

35
thepip3r
CD [Your_Folder]
RMDIR /S /Q .

Sie erhalten eine Fehlermeldung, dass der Befehl RMDIR nicht auf den aktuellen Ordner zugreifen kann und ihn daher nicht löschen kann.

Update :

Ab this nützlicher Kommentar (dank Moritz Both ) können Sie && hinzufügen, sodass RMDIR nicht ausgeführt wird, wenn der Befehl CD fehlschlägt (z. B. Verzeichnis falsch eingegeben) Name):

CD [Your_Folder] && RMDIR /S /Q .

Von Windows-Befehlszeilenreferenz :

/S: Löscht einen Verzeichnisbaum (das angegebene Verzeichnis und alle seine Unterverzeichnisse, einschließlich aller Dateien).

/Q: Gibt den stillen Modus an. Fordert beim Löschen eines Verzeichnisbaums nicht zur Bestätigung auf. (Beachten Sie, dass/q nur funktioniert, wenn/s angegeben ist.)

26
O.Badr

RD steht für REMOVE Directory.

/ S: Löscht alle Dateien und Unterordner zusätzlich zum Ordner. Verwenden Sie diese Option, um einen gesamten Ordnerbaum zu entfernen.

/ Q: Leise - YN-Bestätigung nicht anzeigen

Beispiel

RD /S /Q C:/folder_path/here
9

Ich benutze Powershell

Remove-Item c:\scripts\* -recurse

Der Inhalt des Ordners wird entfernt, nicht der Ordner selbst.

8
rhellem

Mit dem folgenden Befehl können Sie alle Inhalte und den übergeordneten Ordner selbst löschen:

RMDIR [/S] [/Q] [drive:]path            
4
Ripon Al Wasim

Verwenden Sie den Editor, um ein Textdokument zu erstellen und kopieren Sie diese:

rmdir /s/q "%temp%"
mkdir "%temp%"

Wählen Sie Speichern unter, Dateiname:

delete_temp.bat

Dateityp: Alle Dateien und klicken Sie auf die Schaltfläche Speichern.

Arbeiten Sie mit jeder Art von Konto (Administrator oder Standardbenutzer), führen Sie es einfach aus! In diesem Beispiel verwende ich eine temporäre Variable, aber Sie können jede andere verwenden! p.s. Nur für Windows!

4

So löschen Sie eine Datei:

del PATH_TO_FILE

So löschen Sie einen Ordner mit allen darin enthaltenen Dateien:

rmdir /s /q PATH_TO_FOLDER

Das Löschen aller Dateien aus einem bestimmten Ordner (nicht das Löschen des Ordners selbst) ist etwas kompliziert. del /s *.* kann keine Ordner löschen, entfernt jedoch Dateien aus allen Unterordnern. Es werden also zwei Befehle benötigt:

del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"
4
Maxim Suslov

Ich habe mehrere dieser Ansätze ausprobiert, aber keiner hat richtig funktioniert.
Ich habe diesen zweistufigen Ansatz vor Ort gefunden Windows Command Line :

forfiles /P %pathtofolder% /M * /C "cmd /c if @isdir==FALSE del @file"

forfiles /P %pathtofolder%  /M * /C "cmd /c if @isdir==TRUE rmdir /S /Q @file"

Es hat genau so funktioniert, wie ich es brauchte und wie es vom OP spezifiziert wurde.

1
Paul Haan
@ECHO OFF
rem next line removes all files in temp folder
DEL /A /F /Q /S "%temp%\*.*"
rem next line cleans up the folder's content
FOR /D %%p IN ("%temp%\*.*") DO RD "%%p" /S /Q
0
Robie