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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 55403
Url: https://administrator.de/contentid/55403
Ausgedruckt am: 23.11.2024 um 08:11 Uhr
6 Kommentare
Neuester Kommentar
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