Batch bestimmte Dateien löschen
Hallo,
ich habe ein Frage zu Batch
ich muss mehrere Ordner auf die Unterordner mit Namen "Bios" untersuchen und in diesen "Biosordnern" die 2 neuesten Versionen der darin enthaltenen Dateien beibehalten, die restlichen sollen gelöscht werden. Ich habe es bis jetzt geschafft die Pfade der Ordner aufzulisten und in eine Textdatei zu speichern mit: "dir /a:d /b /s Y:\Ordnername\*bios >datei.txt".
Nun würde ich gerne diese Textdatei zeilenweise auslesen und oben genannte Aufgabe ausführen.
Ich hoffe es kann mir jemand helfen.
Gruß rubono
ich habe ein Frage zu Batch
ich muss mehrere Ordner auf die Unterordner mit Namen "Bios" untersuchen und in diesen "Biosordnern" die 2 neuesten Versionen der darin enthaltenen Dateien beibehalten, die restlichen sollen gelöscht werden. Ich habe es bis jetzt geschafft die Pfade der Ordner aufzulisten und in eine Textdatei zu speichern mit: "dir /a:d /b /s Y:\Ordnername\*bios >datei.txt".
Nun würde ich gerne diese Textdatei zeilenweise auslesen und oben genannte Aufgabe ausführen.
Ich hoffe es kann mir jemand helfen.
Gruß rubono
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 188878
Url: https://administrator.de/contentid/188878
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
8 Kommentare
Neuester Kommentar
Hallo rubono und willkommen im Forum!
Dazu brauchst Du doch keine Datei zu verwenden - ungetestet etwa so:
Solange das "
Grüße
bastla
Dazu brauchst Du doch keine Datei zu verwenden - ungetestet etwa so:
for /f "delims=" %%i in ('dir /s/b/ad "Y:\Ordnername\*bios"') do (
for /f "skip=2 delims=" %%a in ('dir /b/o-d "%%i"') do echo del "%%i\%%a"
)
echo
" vor dem "del
" steht, passiert noch nix - die Löschbefehle werden nur angezeigt; wenn's gut aussieht, einfach das "echo
" entfernen ...Grüße
bastla
@Karo
Danke - ist aber beides (der Vortritt und die Titulierung) nicht nötig ...
Grüße
bastla
P.S.: Ich war vermutlich auch nicht schneller, sondern habe nur früher angefangen ...
Danke - ist aber beides (der Vortritt und die Titulierung) nicht nötig ...
Grüße
bastla
P.S.: Ich war vermutlich auch nicht schneller, sondern habe nur früher angefangen ...
Hallo rubono!
Dann wollen wir mal:
liefert in
listest dann in weiterer Folge für jeden dieser Unterordner die enthaltenen Dateien (zur Sicherheit wäre noch ein "
Grüße
bastla
Dann wollen wir mal:
for /f "delims=" %%i in ('dir /s/b/ad "Y:\Ordnername\*bios"') do (
%%i
alle Ordner (wegen "/ad
") unterhalb von "Y:\Ordnername", die dem Muster "*bios" entsprechen - und zwar inkl Pfadangabe (wegen "s
") - das wusstest Du aber schon .for /f "skip=2 delims=" %%a in ('dir /b/o-d "%%i"') do echo del "%%i\%%a"
/a-d
" zu empfehlen) absteigend nach Änderungsdatum sortiert ("/o-d
") auf und löscht sie (da nur Dateinamen geliefert werden, ist die Angabe des Ordnerpfades - steht in "%%i
" - erforderlich), wobei wegen des "skip=2
" die ersten beiden Dateien (und somit die beiden jüngsten) übersprungen werden.Grüße
bastla