Bonjour,
j’ai besoin de faire un script pour synchroniser deux répertoires. Cette synchro est basée sur l’existence et la taille des fichiers:
si le fichier n’existe pas dans B, je le copie depuis A
si le fichier existe dans B et A, je compare la taille, si la taille diffère, je copie de A vers B.
il s’agit d’une Synchro de type ECHO donc.
Pour celà j’ai décider d’utiliser un langage simple, le DOS :] seulement je rencontre des problèmes et n’arrive pas à en trouver la cause.
@echo off
set dossier1=c:\A
set dossier2=c:\B
for /f "delims=" %%a in ('dir /b /s /o:n "%dossier1%"') do call :cmd "%%a"
pause & exit
:cmd
set fichier=%~nx1
if not exist "%dossier2%\%fichier%" copy "%dossier1%\%fichier%" "%dossier2%\%fichier%" > NUL & goto :eof
set taille1=%~z1
cd %dossier2%
for /f "delims=" %%b in ('dir /b /o:n "%dossier2%"') do set taille2=%%~zb
cd %dossier1%
if %taille1%==%taille2% copy /y "%dossier1%\%fichier%" "%dossier2%\"
la copie se fait, mais pas la vérification sur la taille lorsque la première opération de copie à eu lieu.
Sinon, si vous connaissez en langage vbs, wsh, je suis preneur. Merci