Angenommen, das D:
Laufwerk enthält einen Ordner :
D:\Air
D:\Abonden
D:\All
D:\Whatever
Ich möchte alle Ordner löschen, die mit "A" beginnen (einschließlich aller Unterordner und Dateien). Ich habe diesen Befehl ausprobiert:
rmdir D:\A* /s /q
Ich erhalte jedoch eine Fehlermeldung :(
Der Dateiname, der Verzeichnisname oder die Datenträgerbezeichnungssyntax sind falsch.
Der del
Befehl funktioniert mit *
, aber ich muss auch Ordner löschen.
Gibt es eine Möglichkeit, dies über den rmdir
Befehl zu erreichen ?
windows
command-line
batch
serdar
quelle
quelle
Antworten:
Verwenden Sie dies, um Folgendes zu testen:
Dadurch werden die auszuführenden Befehle an die Eingabeaufforderung weitergeleitet, und Sie können sehen, was los ist.
Bedenken Sie, dass dies auch Unterordner wie "C: \ temp \ jjj \ aaa" durchsucht und den aaa-Ordner löscht. Wenn Sie möchten, dass nur die Ordner der obersten Ebene "C: \ temp \ aaa" angezeigt werden, entfernen Sie die
"/s"
aus dem Befehl.Der Schlüssel dazu ist das A *, in das Sie den Suchbegriff eingeben würden. Dies wird akzeptiert Platzhalter wie
aaa*
,aaa*
und*aaa*
wenn Sie es wollen.quelle
for /f %%i in ('dir /a:d /s /b A*') do rd /s /q %%i
Ordner mit Platzhaltern löschen
Der Befehl
rmdir
/rd
allein unterstützt keine Platzhalterzeichen (d. H.*
Und?
). Sie können diese Einschränkung umgehen, indem Sie sie in einefor
Schleife einschließen.Anwendungsbeispiel
Hinweis Wenn Sie Dateien und Ordner löschen, möchten Sie möglicherweise zuerst den
rd
Befehl durch ersetzenecho
. Auf diese Weise können Sie sicherstellen, dass alles, was nicht gelöscht werden sollte, tatsächlich gelöscht würde.Mehrere Muster
Um mehrere Ordner mit unterschiedlichen Mustern zu löschen, ist die Syntax nicht zu unterschiedlich. Wie @dbenham richtig hervorhob, reicht ein einzeiliger Befehl aus. Sie können auch verschiedene Pfade angeben:
Bonus - Überprüfung der Ordner Existenz
Wenn Sie überprüfen möchten, ob bestimmte Ordner vorhanden sind, können Sie den folgenden Befehl verwenden:
Weitere Lektüre
quelle
FOR /D
undFOR /D /R
Befehlen mehrere Muster erstellen. Einfach benutzenin( "A*" "B*" "C?D" )
./R
Option, da sich der Unterordner, der der Maske entspricht, möglicherweise unter einem übergeordneten Ordner befindet, der dies nicht tut.Wie hat noch niemand dem OP von Forfiles erzählt ?!
forfiles /P D:\ /M A* /C "cmd /c if @isdir==TRUE rmdir /s /q @file"
quelle
for /d
wie in and31415 ist sowohl sauberer als auch effizienter.Die Antwort adn31415 ist korrekt, bricht jedoch ab, wenn Sie sie in ein Batch- oder Cmd-Skript einfügen. Ich schlug stundenlang mit dem Kopf, bis ich herausfand, wie du es benutzt.
Im DOS-Befehlsfenster:
In Batch- oder Cmd-Skript:
Wenn Sie es in eine ".bat" - oder eine ".cmd" -Datei einfügen möchten, müssen Sie die "%" -Zeichen verdoppeln.
quelle