@echo off rem ************************************** rem Merci de ne PAS TOUCHER aux variables qui suivent !!! set titre=BATCH_OPTIMISATEUR set version=v5 set vdate=03.05.2010 set x=1 set y=7 set title=%titre% %version% du %vdate% set tps=4 rem ************************************** rem ************************************** set debug=0 rem debug=0 Le script s'exécute normalement rem debug=1 Mode debug actif TEMPORAIRE (cible quelques messages) rem debug=2 Mode debig actif en permanance. rem ************************************** rem SUPER ASTUCE: Le copier/coller qui fonctionne même avec MS-DOS !!! rem Exemple: copiez le texte que vous voulez et faites un clic droit dans la fenêtre dos ! rem MAGIQUE !!! Votre texte est collé !!! rem La combinaison Ctrl+V ne marche pas par contre... c'est le simple clic droit qui colle sur la fenêtre MS-DOS rem Permet de "Copier-coller" dans la console MS-DOS reg add "HKEY_CURRENT_USER\Console" /v QuickEdit /t REG_SZ /d 1 /f rem Initialisation des variables obligatoires set DIRinstall=%~dp0 set DIRtempo=%~dp0temp set DIRcompo=%~dp0composants set BOEXE=Batch_Optimisateur.exe rem Définition des composants set cechoEXE=%DIRcompo%\cecho.exe set formaterARB=%DIRcompo%\formater.arb set FreeWatchEXE=%DIRcompo%\FreeWatch.exe set indexPHP=%DIRcompo%\index.php set logoBAT=%DIRcompo%\logo.bat set nconvertEXE=%DIRcompo%\nconvert.exe set questionsBAT=%DIRcompo%\questions.bat set switchEXE=%DIRcompo%\switch.exe set vlogoBAT=%DIRcompo%\vlogo.bat rem Définition des fichiers temporaires set sourceTXT=%DIRtempo%\DIRsource.txt set sortieTXT=%DIRtempo%\DIRsortie.txt set sousrepTXT=%DIRtempo%\DIRsousrep.txt set supTXT=%DIRtempo%\DIRsup.txt set sortieNEWTXT=%DIRtempo%\DIRsortieNew.txt set listingTXT=%DIRtempo%\listing.txt rem Définition de variables... set setupTXT=%~dp0Setup.txt set vDPI=0 rem Identification du système (x86 ou x64) if exist "%PROGRAMFILES%" set SYS_3264=%PROGRAMFILES% if exist "%PROGRAMFILES(x86)%" set SYS_3264=%PROGRAMFILES(x86)% if "%debug%" == "2" ( echo R‚pertoire pr‚sent : "%SYS_3264%" pause cls ) rem Recherche du répertoire d'installation de Ant Renamer if exist "%PROGRAMFILES%\Ant Renamer\Renamer.exe" set renamerEXE=%PROGRAMFILES%\Ant Renamer\Renamer.exe if exist "%PROGRAMFILES(x86)%\Ant Renamer\Renamer.exe" set renamerEXE=%PROGRAMFILES(x86)%\Ant Renamer\Renamer.exe if not defined renamerEXE set merror10=Le logiciel tierce Ant Renamer n'a pas ‚t‚ trouv‚. Il faut l'installer. rem Taille de la fenêtre title %title% mode con lines=82 cols=80 color F1 if "%debug%" == "2" ( echo launched in %CD% echo i'm here %~dp0 rem echo Pour info, la commande %CD% donne le répertoire du fichier exécutant PARENT ! rem echo Pour info, la commande %~dp0 donne le répertoire (avec le slash \ ) du répertoire où se trouve le présent script ! echo %merror0% pause ) rem Initialisation du dossier temporaire. Si il existe on l'efface avant (pour le vider) avant de le recréer (vièrge) if exist "%DIRtempo%" del "%DIRtempo%" /s /q >nul if not exist "%DIRtempo%" mkdir "%DIRtempo%" >nul rem Vérification des composants indispensables. rem S'il ne sont pas présent, poursuite impossible... if not exist "%setupTXT%" set merror100=Le fichier Setup.txt n'a pas ‚t‚ trouv‚. rem Erreur 00 bloquante if defined merror100 goto :bleme if not exist "%cechoEXE%" set merror20=Le composant cecho.exe n'a pas ‚t‚ trouv‚. if not exist "%formaterARB%" set merror30=Le composant formater.arb n'a pas ‚t‚ trouv‚. if not exist "%FreeWatchEXE%" set merror40=Le composant FreeWatch.exe n'a pas ‚t‚ trouv‚. if not exist "%indexPHP%" set merror50=Le composant index.php n'a pas ‚t‚ trouv‚. if not exist "%logoBAT%" set merror50=Le composant logo.bat n'a pas ‚t‚ trouv‚. if not exist "%nconvertEXE%" set merror60=Le composant nconvert.exe n'a pas ‚t‚ trouv‚. if not exist "%questionsBAT%" set merror70=Le composant questions.bat n'a pas ‚t‚ trouv‚. if not exist "%switchEXE%" set merror80=Le composant switch.exe n'a pas ‚t‚ trouv‚. :: if not exist "%vlogoBAT%" set merror90=Le composant vlogo.bat n'a pas ‚t‚ trouv‚. rem Appel du fichier Setup.txt (avant, je l'aurait converti en .bat) copy "%setupTXT%" "%DIRtempo%\Setup.bat">nul call "%DIRtempo%\Setup.bat" rem Condition d'annulation de procédure for /L %%d in (0,1,199) do if defined merror%%d goto :bleme :P0 rem Condition de saut grâce à un paramètre transmis par un logiciel tiers (LrLoader). if "%silentORNOT%" == "o" goto :L0 rem Condition de saut grâce à un paramètre transmis par question.bat Comme ce dernier est lancé APRES :P0 rem et que la boucle oublige à revenir plus haut, l'étape :P0 n'est plus utile pour ce cas. if "%gfini%" == "1" goto :L0 set question= color F1 call :header if "%silentORNOT%" == "o" ( echo. echo ATTENTION ^!^!^! ATTENTION ^!^!^! ATTENTION ^!^!^! ATTENTION ^!^!^! ATTENTION ^!^!^! echo Le mode silencieux est activ‚ ce qui veut dire que Batch_Optimisateur n'affichera echo pas toutes les fenêtres. Vous gagnez ansi de en facilté. echo. echo. echo Gardez à l'esprit que Batch_Optimisateur prendra certaines décisions à votre place. echo Consulter le fichier Lisez-moi.rtf pour plus d'informations. echo. echo. echo. echo. echo. echo. echo. echo Appuyez sur une touche pour lancer Batch_Optimisateur en mode silencieux. echo. echo. pause> nul cls goto :L0 ) else ( echo. echo. echo. echo Voulez vous ‚diter le fichier "Setup.txt" echo Dans le but de modifi‚er vos paramŠtres par d‚faut ? [o] - [n] echo. echo. echo Validez en appuyant sur la touche "Entr‚e" echo. set /p question= ) if "%question%" == "o" goto :P1 if "%question%" == "n" goto :L0 cls goto :P0 :P1 if "%silentORNOT%" == "o" goto :L1 rem action à exécuter lors de l'édition du fichier Setup.txt call :header echo Le fichier "%DIRinstall%Setup.txt" ... echo ... viens de s'ouvrir avec le bloc-notes. echo. echo Une fois l'édition du fichier terminée, veuillez fermer le bloc-notes start /wait notepad.exe "%DIRinstall%Setup.txt" :L0 rem Re-lecture call "%DIRtempo%\Setup.bat" :L1 if "%debug%" == "2" ( cls echo I'm here, after first panel... echo. echo Affichage des variable lues et prises en compte. echo. echo. echo logoORNOT %logoORNOT% echo DIRsource %DIRsource% echo DIRsortie %DIRsortie% echo copyORNOT %copyORNOT% echo copyright %copyright% echo DIRhightORNOT %DIRhightORNOT% echo DIMhdORNOT %DIMhdORNOT% echo paramdefORNOT %paramdefORNOT% echo DIMhd %DIMhd% echo DIMnormal %DIMnormal% echo DIMthumbnail %DIMthumbnail% echo Qhd %Qhd% echo Qnormal %Qnormal% echo Qthumbnail %Qthumbnail% echo prefixe_mini %prefixe_mini% echo renameORNOT %renameORNOT% echo FreeWatchORNOT %FreeWatchORNOT% echo DPIH %DPIH% echo DPIV %DPIV% echo openbehindORNOT %openbehindORNOT% echo openafterORNOT %openbehindORNOT% echo silentORNOT %silentORNOT% echo. echo module1 %module1% echo module2 %module2% echo module3 %module3% echo module4 %module4% echo module5 %module5% echo module6 %module6% echo module7 %module7% echo module8 %module8% echo module9 %module9% echo module10 %module10% echo module11 %module11% echo module12 %module12% echo module13 %module13% echo module14 %module14% echo module15 %module15% echo module16 %module16% echo module17 %module17% echo module18 %module18% echo module19 %module19% echo module20 %module20% pause cls ) :eta1 rem Correction arbitraire de deux répertoires pour eviter trop de complications... if defined DIRsource (if not exist "%DIRsource%" set DIRsource=) if defined DIRsortie (if not exist "%DIRsortie%" set DIRsortie=) rem Vérifiaction et/ou rectification des données relatives à la qualité des images en sortie de traitement. if not defined Qhd set Qhd=90 if /i %Qhd% GTR 100 set Qhd= if not defined Qnormal set Qnormal=80 if /i %Qnormal% GTR 100 set Qnormal= if not defined Qthumbnail set Qthumbnail=70 if /i %Qthumbnail% GTR 100 set Qthumbnail= rem Vérification et/ou rectification des données relatives à la dimension des images en sortie de traitement. if not defined DIMthumbnail set DIMthumbnail= if not defined DIMnormal set DIMnormal= if not defined DIMhd set DIMhd= if /i %DIMhd% LEQ %DIMnormal% set merror101=La valeure de dimensions de DIMhd (ou DIMnoraml) est ilogique. if /i %DIMhd% LEQ %DIMthumbnail% set merror101=La valeure de dimensions de DIMhd (ou DIMnoraml) est ilogique. if /i %DIMnormal% LEQ %DIMthumbnail% set merror102=La valeure de dimensions de DIMnormal (ou DIMthumbnail) est ilogique. if /i %DIMnormal% GEQ %DIMhd% set merror102=La valeure de dimensions de DIMnormal (ou DIMthumbnail) est ilogique. if /i %DIMthumbnail% GEQ %DIMnormal% set merror103=La valeure de dimensions de DIMthumbnail (ou DIMnormal) est ilogique. if /i %DIMthumbnail% GEQ %DIMhd% set merror103=La valeure de dimensions de DIMthumbnail (ou DIMnormal) est ilogique. rem Vérification de la pertinence des informations saisies pour les variables "ORNOT" if not defined logoORNOT set logoORNOT=o if /i "%logoORnot%" NEQ "o" ( if /i "%logoORnot%" NEQ "n" ( set merror104= Dans le fichier "Setup.txt" la valeure donn‚e … logoORNOT est ‚ron‚e ! ) ) if defined copyORNOT ( if /i "%copyORNOT%" NEQ "o" ( if /i "%copyORNOT%" NEQ "n" ( set merror105= Dans le fichier "Setup.txt" la valeure donn‚e … copyORNOT est ‚ron‚e ! ) ) ) else ( echo La variable copyORNOT est vide. ) if defined DIRhightORNOT ( if /i "%DIRhightORNOT%" NEQ "o" ( if /i "%DIRhightORNOT%" NEQ "n" ( set merror106= Dans le fichier "Setup.txt" la valeure donn‚e … DIRhightORNOT est ‚ron‚e ! ) ) ) else ( echo La variable DIRhightORNOT est vide. ) if defined DIMhdORNOT ( if /i "%DIMhdORNOT%" NEQ "o" ( if /i "%DIMhdORNOT%" NEQ "n" ( set merror107= Dans le fichier "Setup.txt" la valeure donn‚e … DIMhdORNOT est ‚ron‚e ! ) ) ) else ( echo La variable DIMhdORNOT est vide. ) if defined paramdefORNOT ( if /i "%paramdefORNOT%" NEQ "o" ( if /i "%paramdefORNOT%" NEQ "n" ( set merror108= Dans le fichier "Setup.txt" la valeure donn‚e … paramdefORNOT est ‚ron‚e ! ) ) ) else ( echo La variable paramdefORNOT est vide. ) if defined renameORNOT ( if /i "%renameORNOT%" NEQ "o" ( if /i "%renameORNOT%" NEQ "n" ( set merror109= Dans le fichier "Setup.txt" la valeure donn‚e … renameORNOT est ‚ron‚e ! ) ) ) else ( echo La variable renameORNOT est vide. ) if defined FreeWatchORNOT ( if /i "%FreeWatchORNOT%" NEQ "o" ( if /i "%FreeWatchORNOT%" NEQ "n" ( set merror110= Dans le fichier "Setup.txt" la valeure donn‚e … FreeWatchORNOT est ‚ron‚e ! ) ) ) else ( echo La variable FreeWatchORNOT est vide. ) if defined DPIH set /a vDPI=%vDPI%+1 if defined DPIV set /a vDPI=%vDPI%+1 if "%vDPI%" NEQ "0" ( if "%vDPI%" == "2" ( set DPI=-dpi %DPIH%x%DPIV% ) if not defined DPIH (set merror111= Dans le fichier "Setup.txt" une valeure donn‚e … aux DPI est ‚ron‚e !) else (if not defined DPIV (set merror111= Dans le fichier "Setup.txt" une valeure donn‚e … aux DPI est ‚ron‚e !)) ) if defined openbehindORNOT ( if /i "%openbehindORNOT%" NEQ "o" ( if /i "%openbehindORNOT%" NEQ "n" ( set merror112= Dans le fichier "Setup.txt" la valeure donn‚e … openbehindORNOT est ‚ron‚e ! ) ) ) else ( echo La variable FreeWatchORNOT est vide. ) if defined openafterORNOT ( if /i "%openafterORNOT%" NEQ "o" ( if /i "%openafterORNOT%" NEQ "n" ( set merror113= Dans le fichier "Setup.txt" la valeure donn‚e … openafterORNOT est ‚ron‚e ! ) ) ) else ( echo La variable openafterORNOT est vide. ) if defined silentORNOT ( if /i "%silentORNOT%" NEQ "o" ( if /i "%silentORNOT%" NEQ "n" ( set merror114= Dans le fichier "Setup.txt" la valeure donn‚e … silentORNOT est ‚ron‚e ! ) ) ) else ( echo La variable silentORNOT est vide. ) rem Autres vérifiactions if not defined prefixe_mini set prefixe_mini= rem Vérification la plus importante. Si cette condition n'est pas respéctée les autres messages d'erreurs ne safficheront même pas car le batch s'arrêtera avant. merro=0 rem Savoir sir le dossier de sortie est vide ou pas. if defined DIRsortie ( for /f "delims=" %%a in ('dir "%DIRsortie%" /b') do ( if "%%a" NEQ "" ( set merror0=Le r‚pertoire de sortie n'est pas vide. Veuillez le vider avant. ) ) ) rem Si le lancement de Batch_Optimisateur est silentieux (mode Silent) alors l'erreur n'apparait pas. Le répertoire sera vidé automatiquement. if "%silentORNOT%" == "o" if defined merror0 set merror0= rem Vérification que le répertoire source contienne bien des fichiers... if not exist "%DIRsource%\*.*" set merror9=Le r‚pertoire "source" ne contient aucune fichiers... Incorrect ! rem Renvoie à l'étiquette "bleme2" en cas d'erreur qui peux for /L %%b in (0,1,8) do if defined merror%%b goto bleme2 rem Renvoie à l'étiquette "bleme" en cas d'erreur for /L %%b in (9,1,199) do if defined merror%%b goto bleme if "%debug%" == "2" ( echo i'm here :eta1 pause cls ) :eta2 rem Appel de question.bat rem En fonction des réponse déjà programmées dans Steup.txt, question.bat n'affichera que le nécessaire. cls call "%questionsBAT%" if "%gfini%" NEQ "1" goto :eta1 :eta3 if "%silentORNOT%" == "o" goto :eta5 if "%openbehindORNOT%" == "n" goto :eta4 rem Action à exécuter une fois le fichier Setup.txt édité call :header echo. echo. echo. echo Ouverture des dossiers : echo - "%DIRsource%" echo - "%DIRsortie%" echo. explorer "%DIRsource%" explorer "%DIRsortie%" echo. echo. echo. echo. pause if "%debug%" == "2" ( echo i'm here :eta3 pause ) :eta4 if "%silentORNOT%" == "o" goto :eta5 cls rem page de présentation if "%logoORNOT%" == "n" goto :eta5 call "%vlogoBAT%" if "%debug%" == "2" ( echo i'm here :eta4 pause ) :eta5 if "%silentORNOT%" == "o" ( rmdir "%DIRsortie%" /s /q ping -n 2 127.0.0.1 > NUL mkdir "%DIRsortie%" ) if "%debug%" == "2" ( echo i'm here :eta5 pause ) :eta6 color 07 rem Lancement du chronographe if "%FreeWatchORNOT%" == "o" ( start composants\FreeWatch.exe /start /label "Temps de traitement de Batch_Optimisateur" ) if "%debug%" == "2" ( echo i'm here :eta6 pause ) :eta7 rem Préparatifs rem Formatage des arguments :f0 rem Le texte :f1 rem Definition de la taille du texte :tailleN1 rem Images Normales rem x < 800 rem 800 >= x < 1023 rem x >= 1024 rem commande01=taille 10 inf a 800 rem commande02=taille 16 compris entre 800 et 1023 rem commande03=taille 18 sup ou egal a 1024 if %DIMnormal% LSS 800 set tailleN1=10 & goto :tailleHD if %DIMnormal% GEQ 800 if %DIMnormal% LSS 1023 set tailleN1=16 & goto :tailleHD if %DIMnormal% GEQ 1024 set tailleN1=18 & goto :tailleHD :tailleHD rem Images HD rem x < 1024 rem 1024 > x > 1279 rem x >= 1280 rem commande11=taille 16 inf a 1024 rem commande12=taille 18 compris entre 1024 et 1279 rem commande13=taille 20 sup ou egal a 1280 if %DIMhd% LSS 1024 set tailleHD=16 & goto :f2 if %DIMhd% GEQ 1024 if %DIMhd% LSS 1279 set tailleHD=18 & goto :f2 if %DIMhd% GEQ 1280 set tailleHD=20 & goto :f2 :f2 if "%prefixe_mini%" == " " set prefixe_mini= if "%copyright%" == " " set texte= if "%copyORNOT%" == "n" set texte= if "%copyORNOT%" == "n" goto :f3 set texteN1=-text_font "MS Reference Sans Serif" %tailleN1% -text_color 0 0 0 -text_back 192 192 192 -text_flag bottom-left -text_pos 0 0 -text "%copyright%" set texteHD=-text_font "MS Reference Sans Serif" %tailleHD% -text_color 0 0 0 -text_back 192 192 192 -text_flag bottom-left -text_pos 0 0 -text "%copyright%" :f3 rem Le redimentionnement set resize=-ratio -rtype lanczos -rflag decr rem Incrustration d'un texte pour le copyright en bas à gauche, fond blanc, texte en noir, taille exprimée avec un facteur de x1,38 par rapport à la taille de base dans Xnview. rem Exemple, pour une police de T13, on obtient en batch: 13*1,38=18. T18 donc... rem Le symbole du © copyright, d'habitude obtenue avec la combinaison de touches [alt]0169 est en fait obtenue içi avec la combinaison de touches [alt]0184 rem Allez comprendre quelque chose... :modulesA cls rem Lancement des modules qui agissent sur les photos dans le répertoire d'entrée (DIRsource). rem Stop le chronographe si déjà lancé. taskList | findstr /c:FreeWatch.exe if "%ERRORLEVEL%" == "0" start composants\FreeWatch.exe /stop cls echo. echo. echo En attente des modules... echo. if defined module01 call %module01% if defined module02 call %module02% if defined module03 call %module03% if defined module04 call %module04% if defined module05 call %module05% if defined module06 call %module06% if defined module07 call %module07% if defined module08 call %module08% if defined module09 call %module09% if defined module10 call %module10% color 07 if "%debug%" == "2" ( echo i'm here :modulesA pause ) cls :et100 rem Reprise du chronomètre si déjà ouvert. taskList | findstr /c:FreeWatch.exe if "%ERRORLEVEL%" == "0" start composants\FreeWatch.exe /start rem Titre de la fenêtre set etape= *** Etape %x% sur %y% *** title %titre%%etape% cls rem Formatage des noms de dossiers + fichiers à l'aide du logiciel Renamer if "%renameORNOT%" == "n" ( goto :et200 ) else ( "%renamerEXE%" -b "%formaterARB%" -afr "%DIRsource%\*.*" -aFr "%DIRsource%\*.*" -g -x ) if "%debug%" == "2" ( echo i'm here :et100 pause ) :et200 rem Titre de la fenêtre set /a x=%x%+1 set etape= *** Etape %x% sur %y% *** title %titre%%etape% cls rem Je liste le contenu de %DIRsource% vers deux fichiers echo %DIRsource%> "%sourceTXT%" dir "%DIRsource%" /AD /B /S>> "%sourceTXT%" echo %DIRsource%> "%sortieTXT%" dir "%DIRsource%" /AD /B /S>> "%sortieTXT%" rem Je transforme les occurences contenant le chemin de DIRsource pour les remplacer par celles du DIRsortie echo "%switchEXE%" "%sortieTXT%" "%DIRsource%" "%DIRsortie%"> "%DIRtempo%\tmp.bat" call "%DIRtempo%\tmp.bat" rem Création des deux sous répertoires rem Boucle pour tous les sous rep if "%DIRhightORNOT%" == "o" ( for /f %%a in ('type "%sortieTXT%"') do mkdir "%%a\pwg_high\" ) for /f %%a in ('type "%sortieTXT%"') do mkdir %%a\thumbnail\ rem Création d'un fichier ne contenant QUE les sous repertoires !!! dir "%DIRsource%" /AD /B /S> "%sousrepTXT%" "%switchEXE%" "%sousrepTXT%" "%DIRsource%" "" if "%debug%" == "1" ( echo i'm here :et200 echo %sortieTXT% echo %DIRsource% echo %DIRsortie% pause ) del "%DIRtempo%\tmp.bat" /s /q :et300 rem Titre de la fenêtre set /a x=%x%+1 set etape= *** Etape %x% sur %y% *** title %titre%%etape% cls rem Edition des images en haute qualité rem Le script est modifiable facilement avec XnView. rem répertoire d'entrée: %DIRsource%\%%a\ Fichiers concernés: *.jpg rem répertoire de sortie: %DIRsortie%\%%a\pwg_high\ Fichiers concernés %%.jpg rem Redimensionnement avec le plus grand coté limité à %dimhd% pixels if "%DIRhightORNOT%" == "o" ( if "%DIMhdORNOT%" == "o" ( "%nconvertEXE%" -q %Qhd% -out jpeg -o "%DIRsortie%\pwg_high\%%.jpg" %resize% -resize %DIMhd% %DIMhd% "%DIRsource%\*.jpg" ) else ( xcopy "%DIRsource%\*.jpg" "%DIRsortie%\pwg_high\" /f /y> nul ) ) if "%DIRhightORNOT%" == "o" ( if "%DIMhdORNOT%" == "o" ( for /f %%a in ('type "%sousrepTXT%"') do "%nconvertEXE%" -q %Qhd% %DPI% -out jpeg -o "%DIRsortie%\%%a\pwg_high\%%.jpg" %resize% -resize %DIMhd% %DIMhd% "%DIRsource%\%%a\*.jpg" ) else ( for /f %%a in ('type "%sousrepTXT%"') do xcopy "%DIRsource%\%%a\*.jpg" "%DIRsortie%\%%a\pwg_high\" /f /y> nul ) ) if "%debug%" == "2" ( echo i'm here :et300 pause ) :et400 rem Titre de la fenêtre set /a x=%x%+1 set etape= *** Etape %x% sur %y% *** title %titre%%etape% cls rem Edition des images en moyenne qualité if "%DIRhightORNOT%" == "o" ( "%nconvertEXE%" -q %Qnormal% %DPI% -out jpeg -o "%DIRsortie%\%%.jpg" %resize% -resize %DIMnormal% %DIMnormal% "%DIRsortie%\pwg_high\*.jpg" ) else ( "%nconvertEXE%" -q %Qnormal% %DPI% -out jpeg -o "%DIRsortie%\%%.jpg" %resize% -resize %DIMnormal% %DIMnormal% "%DIRsource%\*.jpg" ) if "%DIRhightORNOT%" == "o" ( for /f %%a in ('type "%sousrepTXT%"') do "%nconvertEXE%" -q %Qnormal% %DPI% -out jpeg -o "%DIRsortie%\%%a\%%.jpg" %resize% -resize %DIMnormal% %DIMnormal% "%DIRsortie%\%%a\pwg_high\*.jpg" ) else ( for /f %%a in ('type "%sousrepTXT%"') do "%nconvertEXE%" -q %Qnormal% %DPI% -out jpeg -o "%DIRsortie%\%%a\%%.jpg" %resize% -resize %DIMnormal% %DIMnormal% "%DIRsource%\%%a\*.jpg" ) if "%debug%" == "2" ( echo i'm here :et400 pause ) :et500 rem Titre de la fenêtre set /a x=%x%+1 set etape= *** Etape %x% sur %y% *** title %titre%%etape% cls rem Création des vignettes, toujours sur le même principe qu'à l'étape 1 et 2 rem Il n'y pas de d'ajout de la mention en filigranne. rem Supression des meta-données if "%DIRhightORNOT%" == "o" ( "%nconvertEXE%" -rmeta -rexifthumb -out jpeg -o "%DIRsortie%\thumbnail\%prefixe_mini%%%.jpg" %resize% -resize %DIMthumbnail% %DIMthumbnail% "%DIRsortie%\pwg_high\*.jpg" ) else ( "%nconvertEXE%" -rmeta -rexifthumb -out jpeg -o "%DIRsortie%\thumbnail\%prefixe_mini%%%.jpg" %resize% -resize %DIMthumbnail% %DIMthumbnail% "%DIRsortie%\*.jpg" ) if "%DIRhightORNOT%" == "o" ( for /f %%a in (%sousrepTXT%) do ( "%nconvertEXE%" -rmeta -rexifthumb -out jpeg -o "%DIRsortie%\%%a\thumbnail\%prefixe_mini%%%.jpg" %resize% -resize %DIMthumbnail% %DIMthumbnail% "%DIRsortie%\%%a\pwg_high\*.jpg" ) ) else ( for /f %%a in (%sousrepTXT%) do ( "%nconvertEXE%" -rmeta -rexifthumb -out jpeg -o "%DIRsortie%\%%a\thumbnail\%prefixe_mini%%%.jpg" %resize% -resize %DIMthumbnail% %DIMthumbnail% "%DIRsortie%\%%a\*.jpg" ) ) if "%debug%" == "2" ( echo i'm here :et500 pause ) :et600 rem Titre de la fenêtre set /a x=%x%+1 set etape= *** Etape %x% sur %y% *** title %titre%%etape% cls rem Adjonction du texte (filigranne) (copyright) if "%copyORNOT%" == "n" goto et700 if "%DIRhightORNOT%" == "o" ( if "%DIMhdORNOT%" == "o" ( "%nconvertEXE%" "%texteHD%" "%DIRsortie%\pwg_high\*.jpg" ) ) if "%DIRhightORNOT%" == "o" ( if "%DIMhdORNOT%" == "o" ( for /f %%a in ('type "%sousrepTXT%"') do "%nconvertEXE%" "%texteHD%" "%DIRsortie%\%%a\pwg_high\*.jpg" ) ) "%nconvertEXE%" "%texteN1%" "%DIRsortie%\*.jpg" for /f %%a in ('type "%sousrepTXT%"') do "%nconvertEXE%" "%texteN1%" "%DIRsortie%\%%a\*.jpg" if "%debug%" == "2" ( echo i'm here :et600 pause ) :et700 rem Titre de la fenêtre set /a x=%x%+1 set etape= *** Etape %x% sur %y% *** title %titre%%etape% cls rem Suppression des dossiers vides dir "%DIRsortie%" /AD /B /S> "%sortieTXT%" sort /r "%sortieTXT%"> "%supTXT%" for /f %%a in ('type "%supTXT%"') do if not exist "%%a\*.*" rmdir "%%a" rem Copie du fichier %indexPHP% vers les dossiers spécifiés dir "%DIRsortie%" /AD /B /S> "%sortieNEWTXT%" xcopy "%indexPHP%" "%DIRsortie%\" /f /y> nul for /f %%a in ('type "%sortieNEWTXT%"') do xcopy "%indexPHP%" "%%a\" /f /y> nul if "%debug%" == "2" ( echo i'm here :et700 pause ) :modulesB cls rem Lancement des modules qui agissent sur les photos dans le répertoire de sortie (DIRsortie). rem Stop le chronographe si déjà lancé. taskList | findstr /c:FreeWatch.exe if "%ERRORLEVEL%" == "0" start composants\FreeWatch.exe /stop cls echo. echo. echo En attente des modules... echo. if defined module11 call %module11% if defined module12 call %module12% if defined module13 call %module13% if defined module14 call %module14% if defined module15 call %module15% if defined module16 call %module16% if defined module17 call %module17% if defined module18 call %module18% if defined module19 call %module19% color 07 if "%debug%" == "2" ( echo i'm here :modulesB pause ) cls :et800 rem Stop le chronographe si déjà lancé. taskList | findstr /c:FreeWatch.exe if "%ERRORLEVEL%" == "0" start composants\FreeWatch.exe /stop goto :sortie if "%debug%" == "2" ( echo i'm here :et800 pause ) :sortie rem Fin du script cls rem Ouverture consitionnelle du dossier de sortie if "%openafterORNOT%" == "o" explorer "%DIRsortie%" color 70 if "%logoORNOT%" == "o" call "%logoBAT%" exit :bleme rundll32 user32.dll,MessageBeep rem Erreurs set nnn=nnn for /L %%d in (0,1,199) do if defined merror%%d set cerror1=1 for /L %%e in (200,1,299) do if defined merror%%e set cerror5=1 color C0 cls echo /----------------------------------------------------------------------------\ echo I I echo I I echo I *** ATTENTION *** I echo I I echo I I echo \----------------------------------------------------------------------------/ echo. echo !!! INTERUPSION DU PROCESSUS !!! echo. echo Aucune modifiaction n'a ‚t‚ ‚ffectu‚e echo. echo. if defined merror0 echo %merror0% & echo. if defined cerror1 echo Liste des eurreurs fatales: & echo. for /L %%d in (0,1,199) do if defined merror%%d (echo nnn %%merror%%d%% zz nnn.)>"%DIRtempo%\blemeA.bat" if exist "%DIRtempo%\blemeA.bat" ( "%switchEXE%" "%DIRtempo%\blemeA.bat" "nnn" "echo" "%switchEXE%" "%DIRtempo%\blemeA.bat" "zz" "&" call "%DIRtempo%\blemeA.bat" if "%debug%" == "0" del "%DIRtempo%\blemeA.bat"> nul ) if defined cerror5 ( echo Liste des erreurs trouv‚es dans le fichier "Setup.txt". echo. echo Merci de les corriger. echo. echo. echo. echo. echo. ) for /L %%d in (199,1,299) do if defined merror%%d (echo nnn %%merror%%d%% zz nnn.)>"%DIRtempo%\blemeB.bat" if exist "%DIRtempo%\blemeB.bat" ( "%switchEXE%" "%DIRtempo%\blemeB.bat" "nnn" "echo" "%switchEXE%" "%DIRtempo%\blemeB.bat" "zz" "&" call "%DIRtempo%\blemeB.bat" if "%debug%" == "0" del "%DIRtempo%\blemeB.bat"> nul ) echo. if defined cerror1 ( echo ******************************************* echo * Veuillez r‚installer l'application. * echo ******************************************* ) echo. echo. echo. echo. echo !!! FIN DU PROCESSUS !!! echo. echo. echo. echo. echo. echo. echo. pause rem ISuppresion des fichiers temporaires if "%debug%" NEQ "0" ( if exist "%DIRtempo%" del "%DIRtempo%" /s /q >nul if not exist "%DIRtempo%" mkdir "%DIRtempo%" >nul ) exit :bleme2 rem Erreurs non bloquante. Le script sera relancé. cls rundll32 user32.dll,MessageBeep color C0 cls echo /----------------------------------------------------------------------------\ echo I I echo I I echo I *** ATTENTION *** I echo I I echo I I echo \----------------------------------------------------------------------------/ echo. echo !!! INTERUPSION DU PROCESSUS !!! echo. echo Aucune modifiaction n'a ‚t‚ ‚ffectu‚e echo. echo. if defined merror0 echo %merror0% & echo. if defined merror0 start explorer %DIRsortie% echo. echo. echo. echo. echo. echo. echo. echo. ping -n 3 127.0.0.1 > NUL echo Le r‚pertoire de sortie viens de souvrir. A vous de le vider... echo. echo. echo. echo. echo. echo. echo. echo. echo. echo. echo. echo Appuez sur une touche pour relancer Batch_Optimisateur. echo. echo. echo. echo. echo. echo. pause> nul set merror0= color F1 goto :P0 :header cls echo. echo %title% echo /*****************************************\ /********************************\ echo * *I*H ID HHHHHHHHHHHHHHHHHHHHHHHHHHH* echo * BATCH OPTIMISATEUR *I*HHffffffffHHHiiHHHHxxHHHHHHxxHHH* echo * pour Piwigo (PWG) *I*HHffffffffHHHiiHHHHxxHHHHHHxxHHH* echo * www.piwigo.org *I*HHffHHHHHHHHHiiHHHHHxxHHHHxxHHHH* echo * *I*HHfffffHHHHHHiiHHHHHHxxHHxxHHHHH* echo *-----------------------------------------*-*HHfffffHHHHHHiiHHHHHHHHxxHHHHHHH* echo * *I*HHffHHHHHHHHHiiHHHHHHxxHHxxHHHHH* echo * Script r‚alis‚ par MOREAU Julien *I*HHffHHHHHHHHHiiHHHHHxxHHHHxxHHHH* echo * quelleheureestilsvp@yahoo.fr *I*HHffHHHHHHHHHiiHHHHxxHHHHHHxxHHH* echo * *I*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH* echo \*****************************************/ \********************************/ echo. echo. if "%debug%" NEQ "0" ( echo /****************************************************************************\ echo * * echo * MODE DEBUGAGE ACTIF * echo * * echo \****************************************************************************/ echo. ) else ( echo. echo. echo. ) goto :eof