chizze
Goto Top

Dateien anhand von Datum löschen

Hallo Liebe Administratoren gemeinde,

ich habe zurzeit folgendes Problem:

ich muss aus einem Ordner, der Upatedatein enthält, Dateien löschen die älter sind als 5 Tage (Vom aktuellen Datum ausgehend).
Ich hab mich auch erstmal ran gesetzt und im Internet belesen und mein momentaner lösungsstand sie so aus, dass ich Datein löschen kann die 5 Tage älter sind, allerdings wird nicht auf den Monat oder das Jahr geachtet.
Um das zu besser erklären zu können ein kurzes Beispiel: heute - 23.02.2009, Dateien mit Erstelldatum 19.01.2009 oder 22.11.2008 bleiben alle bestehn. Das ist das Problem. Den Quelltext häng ich gern mit an.

Ich würde mich sehr freuen, wenn mir jemand weiterhelfen kann.


@echo off

set dd=%date:~3,2%
set m=%date:~6,2%
set y=%date:~9,13%
set /a tage=5

IF %dd% GEQ 6 (
set /a dd-=%tage%
) ELSE (
goto ende
)
IF %dd% LEQ 9 (
goto caldat2
rem set newdate=0%dd%.%m%.%y%
) ELSE (
goto caldat1
)
:caldat1
set newdate=%dd%.%m%.%y%
goto Main

:caldat2
set newdate=0%dd%.%m%.%y%
goto Main

:Main
FOR /F "tokens=1,4 skip=7 delims= " %%d in ('dir "C:\Inetpub\ftpSymantecUpdates\*.*"') DO (

IF not "%%e" =="Bytes" (
echo %%e - %%d

IF %newdate% GEQ %%d (
echo %%e, %%d
ECHO J | del C:\Inetpub\ftpSymantecUpdates\%%e
)
)
)
pause
:ende
quit

Content-Key: 109767

Url: https://administrator.de/contentid/109767

Printed on: April 23, 2024 at 06:04 o'clock

Mitglied: 27234
27234 Feb 23, 2009 at 14:53:01 (UTC)
Goto Top
Hallo,

1. wurde über dieses Thema schon unzählige Male diskutiert, einfach mal suchen.

2. meine Empfehlung "DelAge32.exe"

Gruß René
Member: Chizze
Chizze Feb 24, 2009 at 14:06:18 (UTC)
Goto Top
Problem ist gelöst!

Da ich auf dem Server keine I-net freischaltung hab, konnte ich das Tool "DelAge32" nicht nutzen und hab nun mein Program Code zusammen bekommen.
Fals jmd mal das gleiche Problem haben wird, ich stellt den Quelltext noch mit zur Verfügung!


Rem ...Löscht Datein aus einem Verzeichnis die Älter sind als X Tage. Die größe X kann man in

der Letzten Zeile ändern, nach "GEQ".

@echo Off & setlocal EnableDelayedExpansion
PushD "x:\Ordner"

for %%i in (*.*) do (
for /f "tokens=1-3,5-7 delims=. " %%a in ("%%~ti %date%") do (
echo "set /a datediff= %%f*365 + %%e*30 + %%d - %%c*365 - %%b*30 -%%a"
if !datediff! GEQ 5 echo "%%i"
))
pause