Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#2

AW: Batchscript zum automatischen Löschen von Dateien

  Alt 21. Mai 2019, 17:14
Mit dir /OD kannst Du Dir die Verzeichnisse sortiert nach Datum ausgeben lassen.
Mit dir /AD bekommst Du nur die Verzeichnisse ausgegeben.
Mit dir /b bekommst Du nur die Namen.
Mit dir /OD /AD /b bekommst Du die Verzeichnisnamen sortiert nach Datum.
Mit dir /O-D /AD /b bekommst Du die Verzeichnisnamen absteigend sortiert nach Datum.
Versteckte, schreibgeschützte und Systemverzeichnisse sollen nicht berücksichtigt werden, sie müssen erhalten bleiben.
Dies sollte mit dir /O-D /AD-r-s-h /b gehen.
Mit 'nem > leitest Du die Ausgabe in eine Datei um.
Jede neue Ausgabe überschreibt eine ggfls. vorhanden Datei.
Bei mehreren Ausgaben hintereinander enthält daher die Datei nur die letzte Ausgabe.

Das kannst Du nun in einer For-Schleife abarbeiten und in eine Datei ausgeben lassen.

Daraus wird dann
Code:
for /f usebackq %i in (`dir /O-D /AD-r-s-h /b`) do @echo %i > loesch.das.Verzeichnis
In der Datei loesch.das.Verzeichnis steht nun der Name des ältesten Verzeichnisses.

Diese Datei kannst Du nun als Eingabe für eine weitere For-Schleife nutzen.
Code:
for /f %i in (loesch.das.Verzeichnis) do rd /q /s %i
Bevor Du das jetzt einfach "losschickst" schau Dir bitte die Syntax der genutzen Befehle auf der Kommandozeile an, damit Du a weißt, was da passiert und Du b (und das ist wichtiger) nachprüfen kannst, ob ich hier jetzt nicht gerade argen Unsinn geschrieben habe

Als Batch zusammengedaddelt käme ungefähr sowas dabei raus:
Code:
rem alte Ausgabedatei ggfls. loeschen
if exists loesch.das.Verzeichnis del loesch.das.Verzeichnis
rem aeltestes Verzeichnis ermitteln:
for /f usebackq %%i in (`dir /O-D /AD-r-s-h /b `) do @echo %%i > loesch.das.Verzeichnis
rem aeltestes Verzeichnis ohne Nachfrage rekursiv loeschen
for /f %%i in (loesch.das.Verzeichnis) do rd /q /s %%i
rem Ausgabedatei loeschen
if exists loesch.das.Verzeichnis del loesch.das.Verzeichnis
Und das ist natürlich ungetestet, nur so als Idee.

Geändert von Delphi.Narium (21. Mai 2019 um 18:36 Uhr) Grund: Fehler behoben
  Mit Zitat antworten Zitat