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?

War es hilfreich?

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top