@echo off setlocal ENABLEDELAYEDEXPANSION cd /d "%~dp0" echo --- Mise en prod Ratio_Restauration --- set "ROOT=%~dp0.." set "VERSION_FILE=%ROOT%\Excel\dev\Ratio_Restauration_VERSION.txt" set "SRC=%ROOT%\Excel\dev\Ratio_Restauration_dev.xlsm" set "DST_DIR=%ROOT%\Excel\prod" set "DST=%DST_DIR%\Ratio_Restauration.xlsm" set "BACKUP_DIR=%ROOT%\Excel\backup" set KEEP_BACKUPS=10 echo. echo ROOT = %ROOT% echo SRC = %SRC% echo DST = %DST% echo BACKUP_DIR = %BACKUP_DIR% echo VERSION_FILE= %VERSION_FILE% echo. set "OLD_VERSION=" if exist "%VERSION_FILE%" ( set /p OLD_VERSION=<"%VERSION_FILE%" ) if not exist "%SRC%" ( echo ERREUR : fichier source introuvable : echo %SRC% exit /b 1 ) if not exist "%DST_DIR%" ( echo ERREUR : dossier de destination introuvable : echo %DST_DIR% exit /b 1 ) if not exist "%BACKUP_DIR%" ( echo Creation du dossier backup : echo %BACKUP_DIR% mkdir "%BACKUP_DIR%" ) if exist "%DST_DIR%\~$Ratio_Restauration.xlsm" ( echo ERREUR : Ratio_Restauration.xlsm est ouvert dans Excel. exit /b 1 ) if exist "%DST%" ( if "%OLD_VERSION%"=="" ( set "BACKUP=%BACKUP_DIR%\Ratio_Restauration_sansVersion.xlsm" ) else ( set "BACKUP=%BACKUP_DIR%\Ratio_Restauration_Vers%OLD_VERSION%.xlsm" ) echo Sauvegarde de l'ancienne production... echo De : %DST% echo Vers : !BACKUP! copy /Y "%DST%" "!BACKUP!" if errorlevel 1 ( echo ERREUR : la sauvegarde de l'ancienne production a echoue. exit /b 1 ) if not exist "!BACKUP!" ( echo ERREUR : le fichier de sauvegarde n'a pas ete cree. echo Attendu : !BACKUP! exit /b 1 ) echo Sauvegarde OK : !BACKUP! ) else ( echo Aucun ancien fichier de production trouve, pas de sauvegarde a faire. ) echo. echo Copie vers la version de production... copy /Y "%SRC%" "%DST%" if errorlevel 1 ( echo ERREUR lors de la copie vers production. exit /b 1 ) if not exist "%DST%" ( echo ERREUR : le fichier de production n'a pas ete cree. exit /b 1 ) echo. echo Mise a jour de version... python "%~dp0maj_version.py" "%VERSION_FILE%" "%DST%" if errorlevel 1 ( echo ERREUR lors de la mise a jour de version. exit /b 1 ) echo. echo Nettoyage des anciennes sauvegardes Restauration... for /f "skip=%KEEP_BACKUPS% delims=" %%F in ('dir /b /a-d /o-d "%BACKUP_DIR%\Ratio_Restauration_Vers*.xlsm" 2^>nul') do ( echo Suppression ancienne sauvegarde : %%F del /q "%BACKUP_DIR%\%%F" ) echo. echo --- Mise en prod terminee --- exit /b 0