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-ID: 55403

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

Ausgedruckt am: 23.11.2024 um 08:11 Uhr

bastla
bastla 29.03.2007 um 18:21:22 Uhr
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
Farbauti
Farbauti 03.04.2007 um 19:23:33 Uhr
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.
bastla
bastla 03.04.2007 um 20:09:00 Uhr
Goto Top
Hallo Farbauti!

Welchen Vorteil bringt die Verwendung von "usebackq"?

Grüße
bastla
Farbauti
Farbauti 03.04.2007 um 21:13:56 Uhr
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.
bastla
bastla 03.04.2007 um 21:22:49 Uhr
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
klamsl
klamsl 19.04.2007 um 17:11:39 Uhr
Goto Top
Super, danke hat geklappt.