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
| @echo off
setlocal enableextensions disabledelayedexpansion
chcp 1252 >nul
::Récupération de l'année, mois, jour, heure, minute, seconde
SET ANNEE=%DATE:~6,4%
SET MOIS=%DATE:~3,2%
SET JOUR=%DATE:~0,2%
SET HEURE=%TIME:~0,2%
SET MINUTE=%TIME:~3,2%
SET SECONDE=%TIME:~6,2%
SET SEPARATION=_
::si l'heure est inférieure à 10 alors ajouter un 0 devant
if %HEURE% LSS 10 (set HEURE=0%time:~1,1%)
::Concocter la date
SET FULLTIME=%ANNEE%%SEPARATION%%MOIS%%SEPARATION%%JOUR%%SEPARATION%%HEURE%%MINUTE%%SECONDE%
::chemin des différents dossiers
SET DIRIN1=C:\cheminDossier1\
SET DIRIN2=C:\cheminDossier2\
SET DossierLog=C:\cheminduDossierLog
SET DIRF=%DossierLog%\f-file.txt
if not exist "%DossierLog%" (mkdir "%DossierLog%")
echo. > %DossierLog%\log_%FULLTIME%.txt
cd %DIRIN1%
::boucle qui parcourt tous les fichiers du dossier
for /f "delims=" %%i in ('dir /b /s /a-d') do (call:copieName "%%~i")
pause
exit /b 0
:copieName
::teste l'existence du fichier
If exist "%~1" (
::copie le fichier et presse f
xcopy "%~1" "%DIRIN2%%FULLTIME%%SEPARATION%%~nx1" /M < %DIRF%
call:writeLog %ERRORLEVEL% "%~nx1"
)
goto :eof
:writeLog
::écriture du retour de la commande xcopy dans les log
>> %DossierLog%\log_%FULLTIME%.txt (
ECHO.
IF %1 EQU 0 (ECHO %FULLTIME% - %~2 Pas d'erreur [%1])
IF %1 EQU 1 (ECHO %FULLTIME% - %~2 erreur [%1] - Aucun fichier à copier n'a été trouvé)
IF %1 EQU 2 (ECHO %FULLTIME% - %~2 erreur [%1] - Opération annulée par l'utilisateur)
IF %1 EQU 4 (ECHO %FULLTIME% - %~2 erreur [%1] - Erreurs diverses comme manque de mémoire, espace disque insuffisant, nom de lecteur invalide ou syntaxe incorrecte)
IF %1 EQU 5 (ECHO %FULLTIME% - %~2 erreur [%1] - Une erreur d'écriture disque est survenue)
)
goto :eof |
Partager