install.bat: reecriture ASCII pur, suppression BOM et caracteres speciaux

L'encodage UTF-8 avec BOM causait "U n'est pas reconnu" et les
tirets cadratins cassaient le parsing CMD. Tout est maintenant en
ASCII pur. Suppression des parentheses problematiques dans les echo
a l'interieur de blocs if/for.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jules Dubois
2026-06-23 22:44:15 +02:00
parent 0ff0906b02
commit 746625146b

View File

@@ -1,7 +1,7 @@
@echo off @echo off
chcp 65001 >nul 2>&1 chcp 65001 >nul 2>&1
setlocal EnableDelayedExpansion setlocal EnableDelayedExpansion
title Copydev Imposition Tool — Installation title Copydev Imposition Tool - Installation
:: Si le script plante ou sort anormalement, la fenetre reste ouverte :: Si le script plante ou sort anormalement, la fenetre reste ouverte
if "%~1" neq "__started__" ( if "%~1" neq "__started__" (
@@ -19,8 +19,6 @@ set "BAT_RAW_URL=https://git.copydev.fr/jules/copydev-imposing-tool/raw/branch/m
:: ============================================================ :: ============================================================
:: AUTO-MISE A JOUR DU SCRIPT :: AUTO-MISE A JOUR DU SCRIPT
:: ============================================================ :: ============================================================
:: On ne se met a jour que si on n'est pas deja en train de le faire
:: (le flag __noupdate__ evite une boucle infinie)
if "%~2" neq "__noupdate__" ( if "%~2" neq "__noupdate__" (
echo Verification de mise a jour du script... echo Verification de mise a jour du script...
set "BAT_TMP=%TEMP%\install_imposing_new.bat" set "BAT_TMP=%TEMP%\install_imposing_new.bat"
@@ -42,7 +40,7 @@ if "%~2" neq "__noupdate__" (
) )
del "!BAT_TMP!" 2>nul del "!BAT_TMP!" 2>nul
) else ( ) else (
echo Impossible de verifier ^(pas de connexion ?^). On continue... echo Impossible de verifier la mise a jour. On continue...
) )
echo. echo.
) )
@@ -106,9 +104,7 @@ set "GIT_CMD=%INSTALL_DIR%\git\cmd\git.exe"
exit /b 0 exit /b 0
:: ============================================================ :: ============================================================
:: Detection des dossiers JavaScripts d'Acrobat (un par version :: Detection des dossiers JavaScripts d'Acrobat
:: installee, ex: DC, 2020, 2024...). Cree le dossier si absent
:: (ne necessite pas de droits admin : c'est sous %APPDATA%).
:: ============================================================ :: ============================================================
:TROUVER_DOSSIERS_ACROBAT :TROUVER_DOSSIERS_ACROBAT
set "NB_DOSSIERS=0" set "NB_DOSSIERS=0"
@@ -124,8 +120,7 @@ if "%NB_DOSSIERS%"=="0" exit /b 1
exit /b 0 exit /b 0
:: ============================================================ :: ============================================================
:: INSTALLATION / MISE A JOUR (meme logique : on clone si absent, :: INSTALLATION / MISE A JOUR
:: on pull sinon, puis on recopie les fichiers a jour)
:: ============================================================ :: ============================================================
:INSTALL :INSTALL
cls cls
@@ -154,7 +149,7 @@ if %ERRORLEVEL% neq 0 (
echo [OK] echo [OK]
echo. echo.
echo [2/4] Telechargement du code (acrobat-plugin/)... echo [2/4] Telechargement du code...
if exist "%REPO_DIR%\.git" ( if exist "%REPO_DIR%\.git" (
pushd "%REPO_DIR%" pushd "%REPO_DIR%"
"%GIT_CMD%" fetch origin "%GIT_CMD%" fetch origin
@@ -175,37 +170,30 @@ echo.
echo [3/4] Detection d'Acrobat et copie des scripts... echo [3/4] Detection d'Acrobat et copie des scripts...
call :TROUVER_DOSSIERS_ACROBAT call :TROUVER_DOSSIERS_ACROBAT
if %ERRORLEVEL% neq 0 ( if %ERRORLEVEL% neq 0 (
echo [ERREUR] Aucune installation d'Acrobat trouvee sous %APPDATA%\Adobe\Acrobat echo [ERREUR] Aucune installation d'Acrobat trouvee
echo Verifiez qu'Acrobat Pro ^(pas seulement Reader^) est installe. echo sous %APPDATA%\Adobe\Acrobat
echo Verifiez qu'Acrobat Pro est installe.
pause pause
goto MENU goto MENU
) )
for /l %%i in (1,1,%NB_DOSSIERS%) do ( for /l %%i in (1,1,%NB_DOSSIERS%) do (
echo -^> !DOSSIER_JS_%%i! echo -- !DOSSIER_JS_%%i!
copy /y "%REPO_DIR%\acrobat-plugin\src\*.js" "!DOSSIER_JS_%%i!\" >nul copy /y "%REPO_DIR%\acrobat-plugin\src\*.js" "!DOSSIER_JS_%%i!\" >nul
) )
echo [OK] Scripts copies dans %NB_DOSSIERS% dossier^(s^) Acrobat echo [OK] Scripts copies dans %NB_DOSSIERS% dossier(s) Acrobat
echo. echo.
echo [4/4] Plugin natif (verification de licence)... echo [4/4] Plugin natif (verification de licence)...
if exist "%REPO_DIR%\acrobat-plugin\native\dist\ImposingLicence.api" ( if exist "%REPO_DIR%\acrobat-plugin\native\dist\ImposingLicence.api" (
set "PLUGIN_DEST=%APPDATA%\Adobe\Acrobat"
for /d %%D in ("%APPDATA%\Adobe\Acrobat\*") do ( for /d %%D in ("%APPDATA%\Adobe\Acrobat\*") do (
if not exist "%%D\Plug_ins3" mkdir "%%D\Plug_ins3" if not exist "%%D\Plug_ins3" mkdir "%%D\Plug_ins3"
copy /y "%REPO_DIR%\acrobat-plugin\native\dist\ImposingLicence.api" "%%D\Plug_ins3\" >nul copy /y "%REPO_DIR%\acrobat-plugin\native\dist\ImposingLicence.api" "%%D\Plug_ins3\" >nul
echo -^> %%D\Plug_ins3\ImposingLicence.api echo -- %%D\Plug_ins3\ImposingLicence.api
) )
echo [OK] Plugin natif copie echo [OK] Plugin natif copie
echo [!] Dossier "Plug_ins3" a verifier : c'est l'emplacement usuel des
echo plugins utilisateur sans droits admin, mais a confirmer selon
echo votre version d'Acrobat.
) else ( ) else (
echo [INFO] Aucun .api precompile trouve dans native\dist\ echo [INFO] Pas de plugin natif precompile.
echo Le plugin natif est optionnel : la suite fonctionne en JS seul, echo La suite fonctionne en JS seul.
echo avec une verification de licence plus simple ^(voir documentation^).
echo Pour l'activer, compilez native\PluginMain.cpp ^(SDK Acrobat + VS^)
echo et placez le .api resultant dans native\dist\ImposingLicence.api
echo avant de relancer cet installeur.
) )
echo. echo.
@@ -214,7 +202,6 @@ echo VERIFICATION POST-INSTALLATION
echo ============================================================ echo ============================================================
echo. echo.
set "POST_ERREURS=0" set "POST_ERREURS=0"
:: Verifie que les scripts sont bien copies dans au moins un dossier Acrobat
call :TROUVER_DOSSIERS_ACROBAT call :TROUVER_DOSSIERS_ACROBAT
if %ERRORLEVEL% neq 0 ( if %ERRORLEVEL% neq 0 (
echo [ERREUR] Aucun dossier Acrobat detecte echo [ERREUR] Aucun dossier Acrobat detecte
@@ -237,22 +224,21 @@ if !POST_ERREURS! gtr 0 (
echo ============================================================ echo ============================================================
echo. echo.
echo L'installation a rencontre des problemes. echo L'installation a rencontre des problemes.
echo Utilisez "Verifier l'installation" ^(choix 3^) pour un echo Utilisez "Verifier l'installation" pour diagnostiquer.
echo diagnostic complet avec export de logs.
) else ( ) else (
echo ============================================================ echo ============================================================
echo TERMINE — INSTALLATION OK echo TERMINE - INSTALLATION OK
echo ============================================================ echo ============================================================
echo. echo.
echo Redemarrez Acrobat Pro pour charger les scripts. echo Redemarrez Acrobat Pro pour charger les scripts.
echo Menu attendu : Edition ^> Imposition Pro echo Menu attendu : Edition - Imposition Pro
echo. echo.
echo Si le menu n'apparait pas, utilisez "Verifier echo Si le menu n'apparait pas, utilisez "Verifier
echo l'installation" ^(choix 3^) pour diagnostiquer. echo l'installation" pour diagnostiquer.
) )
echo. echo.
set /p "LAUNCH=Lancer Acrobat maintenant ? [O/N] : " set /p "LAUNCH_NOW=Lancer Acrobat maintenant ? [O/N] : "
if /i "!LAUNCH!"=="O" call :LANCER_ACROBAT if /i "!LAUNCH_NOW!"=="O" call :LANCER_ACROBAT
pause pause
goto MENU goto MENU
@@ -263,7 +249,7 @@ goto MENU
cls cls
set "LOG_FILE=%INSTALL_DIR%\diagnostic.log" set "LOG_FILE=%INSTALL_DIR%\diagnostic.log"
echo ============================================================> "%LOG_FILE%" echo ============================================================> "%LOG_FILE%"
echo DIAGNOSTIC — %APP_NAME%>> "%LOG_FILE%" echo DIAGNOSTIC - %APP_NAME%>> "%LOG_FILE%"
echo Date : %DATE% %TIME%>> "%LOG_FILE%" echo Date : %DATE% %TIME%>> "%LOG_FILE%"
echo ============================================================>> "%LOG_FILE%" echo ============================================================>> "%LOG_FILE%"
echo.>> "%LOG_FILE%" echo.>> "%LOG_FILE%"
@@ -282,7 +268,7 @@ if exist "%REPO_DIR%\.git" (
echo [OK] Depot local : %REPO_DIR%>> "%LOG_FILE%" echo [OK] Depot local : %REPO_DIR%>> "%LOG_FILE%"
set /a NB_OK+=1 set /a NB_OK+=1
) else ( ) else (
echo [ERREUR] Depot absent. Lancez d'abord l'installation ^(choix 1^). echo [ERREUR] Depot absent. Lancez d'abord l'installation.
echo [ERREUR] Depot local absent>> "%LOG_FILE%" echo [ERREUR] Depot local absent>> "%LOG_FILE%"
set /a NB_ERREURS+=1 set /a NB_ERREURS+=1
) )
@@ -307,8 +293,8 @@ if !NB_SRC_MANQ!==0 (
echo [OK] 10/10 fichiers source presents>> "%LOG_FILE%" echo [OK] 10/10 fichiers source presents>> "%LOG_FILE%"
set /a NB_OK+=1 set /a NB_OK+=1
) else ( ) else (
echo [ERREUR] !NB_SRC_MANQ! fichier^(s^) manquant^(s^) echo [ERREUR] !NB_SRC_MANQ! fichier manquant
echo [ERREUR] !NB_SRC_MANQ! fichier^(s^) source manquant^(s^)>> "%LOG_FILE%" echo [ERREUR] !NB_SRC_MANQ! fichier source manquant>> "%LOG_FILE%"
set /a NB_ERREURS+=1 set /a NB_ERREURS+=1
) )
@@ -317,12 +303,12 @@ echo.
echo [3/5] Dossiers Acrobat... echo [3/5] Dossiers Acrobat...
call :TROUVER_DOSSIERS_ACROBAT call :TROUVER_DOSSIERS_ACROBAT
if %ERRORLEVEL% neq 0 ( if %ERRORLEVEL% neq 0 (
echo [ERREUR] Aucune installation d'Acrobat trouvee sous %APPDATA%\Adobe\Acrobat echo [ERREUR] Aucune installation d'Acrobat trouvee
echo [ERREUR] Aucun dossier Acrobat detecte>> "%LOG_FILE%" echo [ERREUR] Aucun dossier Acrobat detecte>> "%LOG_FILE%"
set /a NB_ERREURS+=1 set /a NB_ERREURS+=1
) else ( ) else (
echo [OK] %NB_DOSSIERS% dossier^(s^) Acrobat detecte^(s^) echo [OK] %NB_DOSSIERS% dossier Acrobat detecte
echo [OK] %NB_DOSSIERS% dossier^(s^) Acrobat>> "%LOG_FILE%" echo [OK] %NB_DOSSIERS% dossier Acrobat>> "%LOG_FILE%"
set /a NB_OK+=1 set /a NB_OK+=1
for /l %%i in (1,1,%NB_DOSSIERS%) do ( for /l %%i in (1,1,%NB_DOSSIERS%) do (
echo !DOSSIER_JS_%%i! echo !DOSSIER_JS_%%i!
@@ -349,21 +335,21 @@ for /l %%i in (1,1,%NB_DOSSIERS%) do (
) )
) )
if !NB_JS_MANQ!==0 ( if !NB_JS_MANQ!==0 (
echo [OK] !DIR_JS! — 10/10 scripts presents echo [OK] !DIR_JS! - 10/10 scripts presents
echo [OK] !DIR_JS! — 10/10 scripts>> "%LOG_FILE%" echo [OK] !DIR_JS! - 10/10 scripts>> "%LOG_FILE%"
) )
) )
if "!DEPLOY_OK!"=="1" ( if "!DEPLOY_OK!"=="1" (
set /a NB_OK+=1 set /a NB_OK+=1
) else ( ) else (
echo [ERREUR] Un ou plusieurs scripts manquent dans Acrobat echo [ERREUR] Un ou plusieurs scripts manquent dans Acrobat
echo [ERREUR] Scripts manquants dans dossier^(s^) Acrobat>> "%LOG_FILE%" echo [ERREUR] Scripts manquants dans dossier Acrobat>> "%LOG_FILE%"
set /a NB_ERREURS+=1 set /a NB_ERREURS+=1
) )
:: --- 5. Plugin natif (optionnel) --- :: --- 5. Plugin natif (optionnel) ---
echo. echo.
echo [5/5] Plugin natif ^(optionnel^)... echo [5/5] Plugin natif...
set "PLUGIN_TROUVE=0" set "PLUGIN_TROUVE=0"
for /l %%i in (1,1,%NB_DOSSIERS%) do ( for /l %%i in (1,1,%NB_DOSSIERS%) do (
set "DIR_JS=!DOSSIER_JS_%%i!" set "DIR_JS=!DOSSIER_JS_%%i!"
@@ -375,30 +361,30 @@ for /l %%i in (1,1,%NB_DOSSIERS%) do (
) )
) )
if "!PLUGIN_TROUVE!"=="0" ( if "!PLUGIN_TROUVE!"=="0" (
echo [INFO] Plugin natif non installe ^(optionnel — licence JS seule^) echo [INFO] Plugin natif non installe - optionnel
echo [INFO] Plugin natif non installe ^(optionnel^)>> "%LOG_FILE%" echo [INFO] Plugin natif non installe>> "%LOG_FILE%"
) )
:: --- Bilan --- :: --- Bilan ---
echo. echo.
echo ============================================================ echo ============================================================
echo BILAN : !NB_OK! OK / !NB_ERREURS! erreur^(s^) echo BILAN : !NB_OK! OK / !NB_ERREURS! erreur
echo ============================================================ echo ============================================================
echo BILAN : !NB_OK! OK / !NB_ERREURS! erreur^(s^)>> "%LOG_FILE%" echo BILAN : !NB_OK! OK / !NB_ERREURS! erreur>> "%LOG_FILE%"
echo.>> "%LOG_FILE%" echo.>> "%LOG_FILE%"
if !NB_ERREURS! gtr 0 ( if !NB_ERREURS! gtr 0 (
echo. echo.
echo Des problemes ont ete detectes. Suggestions : echo Des problemes ont ete detectes :
echo - Relancez l'installation ^(choix 1^) echo - Relancez l'installation
echo - Verifiez qu'Acrobat Pro est installe echo - Verifiez qu'Acrobat Pro est installe
echo - Verifiez votre connexion reseau echo - Verifiez votre connexion reseau
echo. echo.
echo Des problemes detectes, voir suggestions ci-dessus>> "%LOG_FILE%" echo Des problemes detectes>> "%LOG_FILE%"
) else ( ) else (
echo. echo.
echo Tout est en ordre. Redemarrez Acrobat Pro pour echo Tout est en ordre. Redemarrez Acrobat Pro pour
echo voir le menu Edition ^> Imposition Pro. echo voir le menu Edition - Imposition Pro.
echo. echo.
echo Installation validee>> "%LOG_FILE%" echo Installation validee>> "%LOG_FILE%"
) )
@@ -440,7 +426,7 @@ if exist "%ProgramFiles%\Adobe\Acrobat DC\Acrobat\Acrobat.exe" (
start "" "%ProgramFiles%\Adobe\Acrobat DC\Acrobat\Acrobat.exe" start "" "%ProgramFiles%\Adobe\Acrobat DC\Acrobat\Acrobat.exe"
exit /b 0 exit /b 0
) )
echo [!] Executable Acrobat introuvable automatiquement. Lancez-le manuellement. echo Executable Acrobat introuvable. Lancez-le manuellement.
exit /b 1 exit /b 1
:: ============================================================ :: ============================================================
@@ -453,9 +439,9 @@ echo DESINSTALLATION de %APP_NAME%
echo ============================================================ echo ============================================================
echo. echo.
echo Seront supprimes : echo Seront supprimes :
echo - Les scripts CDImp dans chaque dossier Acrobat\^<version^>\JavaScripts echo - Les scripts Imposition dans chaque dossier Acrobat JavaScripts
echo - Le plugin natif ImposingLicence.api ^(s'il a ete installe^) echo - Le plugin natif ImposingLicence.api si installe
echo - %INSTALL_DIR% ^(code source local, cle de licence en registre conservee^) echo - %INSTALL_DIR% (code source local, licence registre conservee)
echo. echo.
set /p "CONFIRM=Confirmer ? [O/N] : " set /p "CONFIRM=Confirmer ? [O/N] : "
if /i "%CONFIRM%" neq "O" goto MENU if /i "%CONFIRM%" neq "O" goto MENU
@@ -473,8 +459,8 @@ rmdir /s /q "%INSTALL_DIR%" 2>nul
echo [OK] %INSTALL_DIR% supprime echo [OK] %INSTALL_DIR% supprime
echo. echo.
echo Pour retirer aussi la cle de licence enregistree : echo Pour retirer aussi la cle de licence :
echo supprimez la cle de registre HKCU\Software\Copydev\ImposingAcrobat echo supprimez HKCU\Software\Copydev\ImposingAcrobat
echo. echo.
echo ============================================================ echo ============================================================
echo DESINSTALLATION TERMINEE echo DESINSTALLATION TERMINEE