@echo au loin
EnableExtensions setlocal EnableDelayedExpansion
Le rem définissent des endroits de source et de destination, et classent des modèles pour copier
placer SourceDir= c:\temp\EE26352923\source
placer DestDir= c:\temp\EE26352923\dest
placer MatchExts=*.trn *.bak
Le rem obtiennent la date d'aujourd'hui et convertissent en Julian
pour /F « tokens=2-4 delims=/ » %%A en ("%DATE%") placent TodaysDate=%%C%%A%%B
appel : jdate TodaysJDate %TodaysDate%
Le rem se déplacent au répertoire source, trouvent tous les dossiers assortir le modèle désiré
pushd « %SourceDir% »
pour %%A dedans (%MatchExts%) faire (
Le rem obtiennent la date de modification de dossiers, converti à Julian
placer FileDate=%%~nA
appel : jdate FileJDate ! FileDate : ~-12.8 !
Le rem calculent l'âge du dossier en jours, si plus vieux que 7 jours se déplacent à la destination
placer /A FileAge=%TodaysJDate%- ! FileJDate !
si ! FileAge ! 7 GTR déplacent « %%~A » « %DestDir% »
)
popd
Le rem se déplacent à l'annuaire de destination, trouvent tous les dossiers assortir le modèle désiré
pushd « %DestDir% »
pour %%A dedans (%MatchExts%) faire (
Le rem obtiennent la date de modification de dossiers, converti à Julian
placer FileDate=%%~nA
appel : jdate FileJDate ! FileDate : ~-12.8 !
Le rem calculent l'âge du dossier en jours, si suppression de plus vieux que 28 jours de destination
placer /A FileAge=%TodaysJDate%- ! FileJDate !
si ! FileAge ! 28 del GTR « %%~fA »
)
popd
sortir /b
Sous-routine de rem pour calculer la date de Julian
: date-corde retourner-variable de jdate (YYYYMMDD)
placer DateStr=%~2
placer yy=%DateStr : ~0.4%
placer /A mm=1%DateStr : ~4.2%-100
placer /A dd=1%DateStr : ~6.2%-100
placer /a « yy=10000%yy% %%10000, mm=100%mm% %% 100, dd=100%dd% %% 100 »
placer /a %~1=dd-32075+1461* (yy+4800+ (mm-14) /12) /4+367* (mm-2- (mm-14) /12*12) /12-3* ((yy+4900+ (mm-14) /12) /100) /4
sortir /b
|