So entfernen Sie alle Ordner mit dem Namen x innerhalb eines Verzeichnisses mithilfe der Cmd / Batch-Datei

8

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:)

    
Achshar 01.05.2012, 03:08
quelle

4 Antworten

7

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:

%Vor%

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:

%Vor%

und alles was übrig blieb war:

%Vor%     
iesou 01.05.2012, 15:09
quelle
5
%Vor%

Achten Sie darauf, dass Sie ...

verwenden

fü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.

    
StarPinkER 01.05.2012 03:14
quelle
1

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.

    
Aacini 02.05.2012 18:14
quelle
0

Machen Sie .bat mit folgendem:

%Vor%     
Ironmomo 25.06.2017 11:10
quelle

Tags und Links