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
| @echo off
@title /!\ Archivage automatique /!\
rem Effacement du shell courant:
cls
:variables
rem Localisation du repertoure courant:
set REPCOURANT=%~dp0
rem Localisation du repertoire WINRAR:
set REPWINRAR="C:\Program Files\WinRAR\"
rem Date du jour au format "YYYYMMJJ":
set DATEduJOUR=%date:~6,4%%date:~3,2%%date:~0,2%
rem Heure du jour:
set HEUREduJOUR=%time:~0,2%%time:~3,2%%time:~6,2%
rem Localisation du fichier contenant les sources et destinations:
set REPDATA="D:\ABC\Projets\Scripting\Archivage_automatique\"
rem Nom du fichier qui contient les donnees sur les sauvegardes:
set FILEDATA=data.csv
rem Concatenation de REPDATA et FILEDATA:
set DATA=%REPDATA%%FILEDATA%
rem Format du fichier de log:
set FORMATLOG=%DATEduJOUR%
rem Destination fichier de log:
set DESTLOG="D:\test_archiv\"
rem Redirection simple vers fichier de logs:
set REDIRLOG=%DESTLOG%history_%FORMATLOG%.txt
rem Choix d'un taux de compression :
set TAUXdeCOMP=5
rem 0: Stocke : Ajoute les fichiers à archiver sans compression
rem 1: La plus rapide: faible compression
rem 2: Rapide : Méthode de compression rapide
rem 3: Normale : Méthode de compression normale (par défaut)
rem 4: Bonne : Méthode de compression bonne (plus de compression)
rem 5: Meilleure : Meilleure méthode de compression (plus de compression mais plus lente)
rem Localisation du logiciel sendmail.exe (envoi de mail):
set REPSENDMAIL=%REPCOURANT%sources\
rem Serveur SMTP:
set SRVSMTP=srv-exch.****.local
rem Destinataire mail
set DESTMAIL=administrateur@****.local
rem Création du fichier de log avec horodatage:
echo. >> %REDIRLOG%
echo ############ Demarrage de l'archivage: %date% - %time% ############ >>%REDIRLOG%
echo. >> %REDIRLOG%
rem Test de presence du fichier de donnees:
if not exist %DATA% goto :fin_prematuree1
rem Recuperation des destinations, sources et noms des sauvegardes:
for /f "tokens=1,2,3,4 delims=," %%a IN ('type %DATA%') DO (
rem Envoi informations au fichier de log:
echo. >> %REDIRLOG%
echo ------ Archivage du repertoire [%%c] vers [%%b%%d] ------ >>%REDIRLOG%
rem Lancement de la commande d'archivage:
%REPWINRAR%Rar.exe a -t -r -as -s -m%TAUXdeCOMP% %%b%%d %%c 2>>%REDIRLOG%
rem Si erreur, on envoi message dans log:
if errorlevel 1 echo [NOK] Des erreurs ont ete detectee >>%REDIRLOG%
rem Si aucune erreur, on envoi message dans log:
if errorlevel 0 echo [OK] Aucune erreur n'a ete detectee >>%REDIRLOG%
REM | rmdir %%c /q /s
)
goto :fin
rem Fin du programme:
:fin
echo. >> %REDIRLOG%
echo ############ Fin de l'archivage: %date% - %time% ############ >>%REDIRLOG%
echo. >> %REDIRLOG%
rem Envoi d'un mail a l'administrateur:
%REPSENDMAIL%sendEmail.exe -s %SRVSMTP% -f administrateur@%COMPUTERNAME% -t %DESTMAIL% -u "Recapitulatif archivage" < %REDIRLOG%
pause
exit
rem Fin du programme en cas d'erreur:
:fin_prematuree1
echo. >> %REDIRLOG%
echo [ERREUR] Le fichier %DATA% n'existe pas ! >>%REDIRLOG%
echo. >> %REDIRLOG%
exit |
Partager