Files
Inventaire-gestion/Scripts/maj_prod_ratio.bat

125 lines
4.2 KiB
Batchfile

@echo off
setlocal EnableExtensions DisableDelayedExpansion
REM === PARAMETRES =============================================================
set "ROOT=C:\Users\miche\PycharmProjects\Ratio_Inventaires"
set "DEV_XLSM=%ROOT%\Excel\dev\Ratio_dev.xlsm"
set "PROD_DIR=%ROOT%\Excel\prod"
set "PROD_XLSM=%PROD_DIR%\Ratio_prod.xlsm"
set "INSTALL_CLIENT=%ROOT%\Fichiers_Install_Clients"
set "VERSION_TXT=%ROOT%\Excel\dev\VERSION.txt"
set "SHEET_NAME=Tableau de bord"
set "CELL_ADDR=P1"
set "SETCELL_VBS=C:\Users\miche\PycharmProjects\Ratio_Inventaires\Scripts\set_cell_silent.vbs"
REM ============================================================================
REM Date ISO (yyyy_MM_dd)
REM ============================================================================
for /f %%i in ('powershell -NoProfile -Command "(Get-Date).ToString(\"yyyy_MM_dd\")"') do set "DATESTAMP=%%i"
set "ARCHIVE_FILE=%PROD_DIR%\Ratio_prod_%DATESTAMP%.xlsm"
echo(
echo( === [1/4] Préparation des dossiers =======================================
if not exist "%PROD_DIR%" mkdir "%PROD_DIR%"
if not exist "%INSTALL_CLIENT%" mkdir "%INSTALL_CLIENT%"
if not exist "%DEV_XLSM%" (
echo( [ERREUR] Fichier DEV introuvable: %DEV_XLSM%
endlocal & exit /b 1
)
if not exist "%VERSION_TXT%" (
echo 1.0.0 > "%VERSION_TXT%"
echo( [INFO] VERSION.txt manquant -> initialisé à 1.0.0
)
REM ---------------------------------------------------------------------------
REM [2/4] Synchroniser P1 (Tableau de bord) = VERSION.txt, sans macros/événements
REM ---------------------------------------------------------------------------
echo(
echo( === [2/4] Mise a jour P1 depuis VERSION.txt [macros/evenements off] =====
set "NEW_VER="
set /p NEW_VER=<"%VERSION_TXT%"
set "NEW_VER=%NEW_VER: =%"
if "%NEW_VER%"=="" (
echo( [ERREUR] VERSION.txt est vide. Mets une valeur ex: 2.1.3 et relance.
endlocal & exit /b 1
)
echo( Version a ecrire en P1 : %NEW_VER%
if not exist "%SETCELL_VBS%" (
echo( [WARN] VBS absent: "%SETCELL_VBS%". P1 ne sera pas mis a jour, on continue.
) else (
cscript //nologo "%SETCELL_VBS%" "%DEV_XLSM%" "%SHEET_NAME%" "%CELL_ADDR%" "%NEW_VER%"
if errorlevel 1 (
echo( [WARN] Echec mise a jour P1. On continue.
) else (
echo( [OK] P1 mis a jour dans DEV : %NEW_VER%
)
)
REM ---------------------------------------------------------------------------
REM [3/4] Sauvegarde de la PROD courante
REM ---------------------------------------------------------------------------
echo(
echo( === [3/4] Sauvegarde de la PROD courante =================================
if exist "%PROD_XLSM%" (
echo( Sauvegarde -> "%ARCHIVE_FILE%"
copy /Y "%PROD_XLSM%" "%ARCHIVE_FILE%" >nul
) else (
echo( Pas de PROD courante à sauvegarder.
)
REM ---------------------------------------------------------------------------
REM [4/4] Copie DEV -> PROD et Dossier client + nettoyage archives
REM ---------------------------------------------------------------------------
echo(
echo( === [4/4] Copie DEV -^> PROD ^& Dossier client =============================
copy /Y "%DEV_XLSM%" "%PROD_XLSM%" >nul || (
echo( [ERREUR] Copie DEV -> PROD echouee.
endlocal & exit /b 1
)
REM --- Livraison client depuis la PROD (sans ajout de protection) ---
copy /Y "%PROD_XLSM%" "%INSTALL_CLIENT%\Ratio_prod.xlsm" >nul || (
echo( [ERREUR] Copie vers INSTALL_CLIENT echouee.
endlocal & exit /b 1
)
REM ecrire la version cote PROD pour verification rapide
echo %NEW_VER% > "%PROD_DIR%\VERSION.txt"
pushd "%PROD_DIR%" >nul
setlocal EnableDelayedExpansion
set count=0
for /f "delims=" %%f in ('dir /b /o-d "Ratio_prod_20??_??_??.xlsm"') do (
set /a count+=1
if !count! gtr 5 del "%%f"
)
endlocal
popd >nul
REM ---------------------------------------------------------------------------
REM Nettoyage: garder 5 archives
REM ---------------------------------------------------------------------------
pushd "%PROD_DIR%" >nul
setlocal EnableDelayedExpansion
set count=0
for /f "delims=" %%f in ('dir /b /o-d "Ratio_prod_20??_??_??.xlsm"') do (
set /a count+=1
if !count! gtr 5 del "%%f"
)
endlocal
popd >nul
echo(
echo( [OK] Mise à jour terminée :
echo( - Version : %NEW_VER%
echo( - PROD : "%PROD_XLSM%"
echo( - CLIENT : "%INSTALL_CLIENT%\Ratio_prod.xlsm"
echo( - PROD\VERSION.txt: %NEW_VER%
echo(
endlocal & exit /b 0