Ich habe einen Ordner namens x mit einer Anzahl von Unterordnern und Dateien. Ich möchte einen Ordner namens y löschen, der in x und allen seinen Unterordnern vorhanden ist. Der besagte Ordner, der gelöscht werden muss, enthält möglicherweise keine Dateien. Ich glaube, dass ich dies mit cmd oder irgendeiner Art von Batch-Datei tun kann, aber ich bin eine neue Befehlszeile und kann wirklich einige Hilfe verwenden.
Eine einfache Sache wäre, den Namen des Ordners zu rendern, was funktioniert, aber ich glaube, es gibt bessere Möglichkeiten, als jeden Ordner einzeln zu entfernen .. wie eine Schleife, die alle Ordner durchläuft.
Danke
EDIT: Nur um klar zu stellen, ich habe y (der Ordner, der gelöscht werden muss) innerhalb von x, und es kann in einem der Unterordner von x und auf jeder Ebene der Tiefe sein. Auch ich schaue auf Antworten, und es kann einige Zeit dauern, damit ich jede Antwort akzeptiere. Bitte ertragen Sie mit mir:)
Hier ist eine andere Lösung für diesen Kommentar, um jeden Teil des Skripts zu beschreiben:
%Vor% Sie können das /p
vor den Anfangsvariablen herausnehmen und deren Werte nach dem =
eingeben, wenn Sie nicht aufgefordert werden möchten:
Sie können auch echo
im Schleifenbereich und pause
im Endbereich für die unbeaufsichtigte Ausführung des Stapels entfernen.
Es könnte ein wenig komplizierter sein, aber der Code kann auf viele andere Anwendungen angewendet werden.
Ich habe es getestet, indem ich nach mehreren Instanzen desselben Ordnernamen qwerty
in C:\Test
gesucht habe:
und alles was übrig blieb war:
%Vor%Achten Sie darauf, dass Sie ...
verwendenfür RD-Befehl:
%Vor%Der FOR-Befehl wird verwendet, um eine Liste von Dateien oder Variablen zu durchlaufen, die Optionen sind sehr einfach zu merken, Directory nur rekursiv.
Ein Problem bei dieser Art von Themen besteht darin, dass bei mehreren Instanzen des Zielordners auf den meisten Ebenen Fehler auftreten, da beim Löschen eines übergeordneten Ordners alle darunter liegenden Ordner verschwinden. Zum Beispiel:
%Vor%Vorheriges Beispiel erzeugt eine Liste von 4 Ordnern mit dem Namen Y, die gelöscht werden, aber nachdem der erste gelöscht wurde, sind die drei verbleibenden Namen nicht mehr vorhanden, was zu einer Fehlermeldung führt, wenn versucht wird, sie zu löschen. Ich verstehe, dass dies eine Möglichkeit in Ihrem Fall ist.
Um dieses Problem zu lösen, müssen die Ordner in Bottom-Up-Reihenfolge gelöscht werden, dh der innerste Ordner muss zuerst gelöscht werden und der oberste Ordner muss zuletzt gelöscht werden. Dies erreichen Sie über eine rekursive Subroutine :
%Vor%Obwohl in diesem speziellen Fall die Probleme, die durch andere Methoden verursacht werden, nur mehrere Fehlermeldungen sind, gibt es andere Fälle, in denen diese Verarbeitungsreihenfolge grundlegend ist.
Tags und Links cmd batch-file