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.