1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
echo on
REM repertoire source
set cpsource=C:\s1\
REM repertoire destination
set cpdest=C:\d1\
REM racine du nom du fichier source
set racine=Tracer
REM la date du jour
set j_date=%date%
REM variable jour, mois, annee de la date du jour
set jour=%j_date:~0,2%
set mois=%j_date:~3,2%
set annee=%j_date:~6,4%
REM pour les valeur de jour egale à 01 ... 09 je retire le 0
if %jour:~0,1%==0 set /a vj=%jour:~1,1%
if %jour:~0,1% GTR 0 set /a vj=%jour%
REM pour les veleur de mois égale à 01 ... 09 je retire le 0
if %mois:~0,1%==0 set /a vm=%mois:~1,1%
if %mois:~0,1% GTR 0 set /a vm=%mois%
REM si la date du jour est inférieur à 2
REM je décrémente de 1 le mois
if %vj% LSS 2 set /a vm=%vm%-1
REM si vm (donc le mois) est inférieur à 1 vm vos 12 et je décrémente de 1 l'annee
if %vm% LSS 1 ( set /a annee=%annee%-1
set /a vm=12)
REM par defaut le si la date du jour est le 1er du mois
REM je considere que le dernier jour du mois précedant est le 31
set dernierj=31
REM je modifie le dernier jour du mois precedant
REM pour les mois suivant de avril, juin, septembre, novembre
if %vm% EQU 4 set /a dernierj=30
if %vm% EQU 6 set /a dernierj=30
if %vm% EQU 9 set /a dernierj=30
if %vm% EQU 11 set /a dernierj=30
REM je modifie le dernier jour du mois precedant
REM pour le cas particulier du mois de fevrier
REM je gere les annees bissextiles
REM Principe si l'expression r1 - r2 + r3 vaut 1 si et seulement si l'année est bissextile
if %vm% EQU 2 (
set mod1=%annee%%%400
if %mod1% equ 0 (
set r1=1
) else (
set r1=0
)
set mod2=%annee% % 100
if %mod2% equ 0 (
set r2=1
) else (
set r2=0
)
set mod3=%annee% % 4
if %mod3% equ 0 (
set r3=1
) else (
set r3=0
)
set res_bix = r1-r2+r3
if %res_bix% EQU 1 (
set /a dernierj=29
) else (
set /a dernierj=28
)
)
REM je dertermine le jour précedant la date du jour dans la variable vj:
if %vj% EQU 1 set /a vj=%dernierj%
if %vj% GTR 0 set /a vj = %vj%-1
REM DEBUG
echo j_date %j_date% jour %jour% mois %mois% annee %annee%
echo vj %vj% vm %vm%
echo res_bix %res_bix% div_annee %div_annee% ret_div %ret_div% dernierj %dernierj%
echo racine %racine%
REM je rajoute les le 0 pour à jour ou à mois pour le format date
if %vm% LSS 10 set vm=0%vm%
if %vj% LSS 10 set vj=0%vj%
REM variable pour le nom du fichier source
set fich=%racine%%vj%.log
REM variable pour le nom pour le fichier destination
set fich2=%racine%%vj%_%vm%_%annee%.log
echo %fich% %fich2%
REM variable avec le chemin et le nom du fichier source et destination
set source=%cpsource%%fich%
set dest=%cpdest%%fich2%
echo %source%
echo %dest%
REM copie du fichier log :
copy %source% %dest%
REM stock la trace de la copie dans un fichier de type log
echo %date% %time% copie du fichier %source% dans %dest% >> backup_log.log
pause
echo on |
Partager