Rekursiv löschen alle Ordner mit Start
-
05-07-2019 - |
Frage
Ich brauche einen Befehl in einer BAT-Datei zu schreiben, die alle Ordner mit einer bestimmten Zeichenfolge beginnen rekursiv gelöscht. Wie kann ich erreichen das?
Lösung
Dies ist die komplette Antwort, die Sie suchen:
FOR /D /R %%X IN (certain_string*) DO RD /S /Q "%%X"
Dabei gilt offensichtlich müssen Sie certain_string
mit der Zeichenfolge Ihre Ordner mit beginnen zu ersetzen.
Das löscht REKURSIVES , wie Sie gefragt (ich meine es geht Throught alle Ordner und Unterordner).
Andere Tipps
Wie wäre:
for /d %a in (certain_string*) do rd /s %a
Dies wird von der Eingabeaufforderung arbeiten. Innerhalb einer Batch-Datei, würden Sie die %
s verdoppeln müssen, wie üblich:
@echo off
for /d %%a in (certain_string*) do rd /s %%a
Unfinished, glaube ich. Wenn Sie bedeuten „Recursively eine Verzeichnishierarchie nach unten gehen, um alle Ordnern zu löschen, mit einer bestimmten Zeichenfolge beginnen“, dann könnte folgende genügen:
for /f "delims=" %%x in ('dir /b /ad abc*') do rd /s /q "%%x"
Dies wird der Verzeichnisbaum rekursiv in, alle Ordner zu finden, mit „abc“ beginnen, iterieren dieser Liste und Entfernen jeden Ordner.
Vielleicht benötigen Sie einen if exist
um die rd
wickeln in Abhängigkeit von der Reihenfolge, in den Verzeichnissen gefunden und zurückgegeben werden. In der Regel über etwas Iterieren und es zugleich ist selten eine gute Idee zu ändern, aber manchmal funktioniert es: -)
rm -rf - "Verzeichnisname"
Ex: rm -rf - "-2096378"
Vor Befehl wird die Ordner / Verzeichnisse gelöscht, beginnend mit - oder Platzhalter
FOR /F "tokens=*" %i IN ('DIR **[[SearchTerm]]** /A:D /s /b') do rd /S / Q %i