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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 55403
Url: https://administrator.de/contentid/55403
Printed on: April 26, 2024 at 14:04 o'clock
6 Comments
Latest comment
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:
Das "echo" steht zum Testen drin - erst wenn Du es entfernst, wird wirklich gelöscht, sonst nur der Löschbefehl angezeigt.
Grüße
bastla
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"
Grüße
bastla
Etwas korrekter müsste es heißen:
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.
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.
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.
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.
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
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