Hallo ThaPate
kopier dir das da in eine Textdatei und bennene sie in irgendwas.bat um:
@echo off
xcopy c:\batch\*.* d:\batch\safe\ /e/s/y/d
FOR /F "tokens=1,2 delims=:" %%d IN ('date /t') DO set dat=%%d
FOR /F "tokens=1,2 delims=:" %%i IN ('time /t') DO set zeit=%%i-%%j
rename d:\batch\safe "%dat%%zeit%.Safe"
FOR /F "skip=2 tokens=*" %%c IN ('DIR /O-D /B D:\Batch\*safe') DO (rd D:\Batch\"%%c" /s/q)
exit
erklärungen in ():
xcopy c:\batch\*.* (Start) d:\batch\safe\ (Ziel) /e/s/y/d (Parameter)
(kopiert das Startverzeichnis zum Zielverzeichnis)
FOR /F "tokens=1,2 delims=:" %%d IN ('date /t') DO set dat=%%d
(kreiert eine Variable "dat" = Datum)
FOR /F "tokens=1,2 delims=:" %%i IN ('time /t') DO set zeit=%%i-%%j
(kreiert eine Variable "zeit" = Uhrzeit)
rename d:\batch\safe "%dat%%zeit%.Safe"
(benennt das soeben kopierte Verzeichnis in "Datum Uhrzeit.Safe" um)
FOR /F "skip=2 tokens=*" %%c IN ('DIR /O-D /B D:\Batch\*safe') DO (rd D:\Batch\"%%c" /s/q)
(legt fest, dass nur die zwei neusten Verzeichnisse bleiben, und die älteren gelöscht werden. Details:
skip=2 = gibt an, dass die zwei neusten übersprungen werden
D:\Batch\*Safe' = gibt die zu prüfenden Verzeichnisse an
rd D:\Batch\"%%c" /s/q = das ist der Löschbefehl
Gruss Brasil