klamsl
Goto Top

Unterordner mit gleichem Namen löschen

Zyklisches Löschen von Unterordnern mit Inhalt in einer sich ständig vergrößernden Verzeichnisstrucktur

Hallo,

folgendes Problem. Ich habe ein Programm, was wav-Files generiert und diese in einer nach Datum und Ordnungsnummer strukturierten Dateistruktur ablegt, zum Beispiel "D:\Jahr\Monat\Tag\Ordnungsnummer\Inhalt.wav".

Jetzt ist das Problem, das ich den Ordner und die beinhaltenden Wav-Dateien nicht speichern möchte. In diesem Fall befinden sich diese immer im Ordner mit Namen 000000000000. Der Ordnername bleibt dabei immer gleich, nur die Position verändert sich. Ich denke dies sollte relativ leicht mit einer Batchdatei zu machen sein, die man dann zum Beispiel stündlich über den Taskplaner starten lässt.

Leider sind meine Kenntnisse in Batchprogrammierung ziemlich begrenzt, kann mir da wer auf die Sprünge helfen?

Danke im Vorraus.

Klamsl

Content-Key: 55403

Url: https://administrator.de/contentid/55403

Printed on: April 23, 2024 at 17:04 o'clock

Member: bastla
bastla Mar 29, 2007 at 16:21:22 (UTC)
Goto Top
Hallo klamsl!

Wenn alle Ordner mit dem Namen "000000000000" unterhalb von "D:\" (vielleicht wäre es etwas sicherer, "D:\Jahr" als Ausgangspunkt zu nehmen) samt Inhalt gelöscht werden sollen, würde das etwa so gehen:
for /f "delims=" %%i ('dir D:\000000000000 /s /b /ad') do @echo rd /s /q "%%i"  
Das "echo" steht zum Testen drin - erst wenn Du es entfernst, wird wirklich gelöscht, sonst nur der Löschbefehl angezeigt.

Grüße
bastla
Member: Farbauti
Farbauti Apr 03, 2007 at 17:23:33 (UTC)
Goto Top
Etwas korrekter müsste es heißen:

for /f "usebackq" %%i IN (`dir D:\000000000000 /s /b /ad`) do @echo rd /s /q "%%i"  

Wenn du die Zeile in einem CMD Fenster starten willst, musst du noch %%i durch %i ersetzten.

Und wenn du sicher bist, die richtigen Dirs zu erwischen, nimm das @echo raus; wie bastla schon schrieb.

Gruß, Farbauti.
Member: bastla
bastla Apr 03, 2007 at 18:09:00 (UTC)
Goto Top
Hallo Farbauti!

Welchen Vorteil bringt die Verwendung von "usebackq"?

Grüße
bastla
Member: Farbauti
Farbauti Apr 03, 2007 at 19:13:56 (UTC)
Goto Top
Hallo bastla,

ohne das usebackq wird bei mir der Dir-Befehl in den Backquoutes (=die 'falschen' Anführungsstriche) nicht ausgeführt.
Unter XP sagt die Hilfe (for /?):

oder, unter Verwendung der Option "usebackq":

FOR /F ["Optionen"] %variable IN (Dateiensatz) DO Befehl [Parameter]
FOR /F ["Optionen"] %variable IN ('Zeichenkette') DO Befehl [Parameter]
FOR /F ["Optionen"] %variable IN (`Befehl`) DO Befehl [Parameter]


Gruß, Farbauti.
Member: bastla
bastla Apr 03, 2007 at 19:22:49 (UTC)
Goto Top
Hallo Farbauti!

Wenn Du genau hinsiehst (oder es per "copy & paste" versuchst), wirst Du bemerken, dass ich Version 2 (also mit Apostroph) verwendet habe (funktioniert auch ohne "usebackq").

Und wenn Du übrigens, wie bei Deiner Version, auf "delims=" verzichtest, werden Pfade mit Leerstellen nicht vollständig ausgegeben ...

Grüße
bastla
Member: klamsl
klamsl Apr 19, 2007 at 15:11:39 (UTC)
Goto Top
Super, danke hat geklappt.