Page 1 sur 1

[RÉSOLU]Problème avec Flag

Posté : 19 avr. 2016 12:47
par Nyrhu
Bonjour,

Dans le code source suivant, le flag "ok" (8e ligne) doit permettre de ne pas inscrire les données indiquée dans le fichier cible, le but étant d'inscrire cette ligne au premier passage de la boucle et les suivants inscriront une autre. Cependant, le flag ne se change pas au moment de prendre la valeur "ok".

La structure des dossiers est la suivants :
- Dossier "css" > script.bat
- Dossier "activites" > dossier "1" ; dossier "2" ; dossier "1" ; etc.
----------------------------------------------------- dossier "1" > dossier "ecole" > fichier "cover.jpg" ; fichier "photo001.jpg" ; fichier "photo002.jpg" ; fichier "photo003.jpg"

En faisant des tests, je me suis aperçu que la valeur du flag "ok" ne change pas dans les FOR. Que faire ? :(

Code : Tout sélectionner

@echo off
SET /p dossier1="          > Entrez le nom du Dossier de la section (ex: Activites) : "
SET output="../%dossier1%/1/%%A/script.js"
SET code_html="../%dossier1%/1/code_html.txt"
>%code_html% (
   ECHO Introduisez ces lignes de code dans votre page HTML : &ECHO. &ECHO.
)
SET ok=no
FOR /F "delims=" %%A IN ('DIR /B /A:D "..\%dossier1%\1\"') DO (
   ECHO document^.write^(^"^\>%output%
   ECHO ^<div class^=\"cadre\" style^=\"background-image: url('%dossier1%/1/%%A/cover.jpg');\"^>\>>%output%
   FOR /F "delims=" %%B IN ('DIR /B "..\%dossier1%\1\%%A\*.jpg"') DO (
      IF NOT %%B==cover.jpg (
         echo test : %ok%
         pause
         IF %ok%==ok (
            (
               ECHO ^<a class^=\"galerie\" href^=\"%dossier1%/1/%%A/%%B\" data-lightbox^=\"%%A\" data-title^=\"\"^>^</a^>\
            )>>%output%
         ) ELSE (
            (
               ECHO ^<a class^=\"galerie\" href^=\"%dossier1%/1/%%A/%%B\" data-lightbox^=\"%%A\" data-title^=\"\"^>^<h6^>TITRE^<span^>^<br /^>DATE^</span^>^</h6^>^</a^>\
            )>>%output%
         )
      )
   )
   (
      ECHO ^<script type^="text/javascript" src="%dossier1%/1/%%A/script.js"^>^</script^>
   )>> %code_html% 
   (
      ECHO ^</div^>\
      ECHO ^"^)
   )>>%output%
)
ECHO.
ECHO                           [ Operation terminee ]
ECHO                      Pressez une touche pour continuer
PAUSE>NUL

Re: Problème avec Flag

Posté : 19 avr. 2016 14:36
par Nyrhu
J'ai contourné le problème en créant un flag "physique".

Code : Tout sélectionner

@echo off
ECHO flag > %tmp%\flag.txt
SET /p dossier1="          > Entrez le nom du Dossier de la section (ex: Activites) : "
SET output="../%dossier1%/1/%%A/script.js"
SET code_html="../%dossier1%/1/code_html.txt"
>%code_html% (
   ECHO Introduisez ces lignes de code dans votre page HTML : &ECHO. &ECHO.
)
FOR /F "delims=" %%A IN ('DIR /B /A:D "..\%dossier1%\1\"') DO (
   (
      ECHO document^.write^(^"^\
   )>%output%
   (
      ECHO ^<div class^=\"cadre\" style^=\"background-image: url('%dossier1%/1/%%A/cover.jpg');\"^>\
   )>>%output%
   FOR /F "delims=" %%B IN ('DIR /B "..\%dossier1%\1\%%A\*.jpg"') DO (
      IF NOT %%B==cover.jpg (
         IF EXIST %tmp%\flag.txt (
            (
               DEL /F /Q %tmp%\flag.txt
               ECHO ^<a class^=\"galerie\" href^=\"%dossier1%/1/%%A/%%B\" data-lightbox^=\"%%A\" data-title^=\"\"^>^<h6^>TITRE^<span^>^<br /^>DATE^</span^>^</h6^>^</a^>\
            )>>%output%
         ) ELSE (
            (
               ECHO ^<a class^=\"galerie\" href^=\"%dossier1%/1/%%A/%%B\" data-lightbox^=\"%%A\" data-title^=\"\"^>^</a^>\
            )>>%output%
         )
      )
   )
   (
      ECHO ^<script type^="text/javascript" src="%dossier1%/1/%%A/script.js"^>^</script^>
   )>> %code_html%
   (
      ECHO ^</div^>\
      ECHO ^"^)
   )>>%output%
)
ECHO.
ECHO                           [ Operation terminee ]
ECHO                      Pressez une touche pour continuer
PAUSE>NUL

Re: [RÉSOLU]Problème avec Flag

Posté : 19 avr. 2016 19:44
par pleaseTellMeWhoIam
salut,
c'est normal que ta variable "ok" ne change pas de valeur puisque tu ne poses aucune condition à l'intèrieur des boucles pour qu'elle en change ; et en supposant qu'il y ait une condition, il faudra activer l'expansion retardée avant de déclarer la variable "ok" et bien penser à replacer les "%" par des "!"

Re: [RÉSOLU]Problème avec Flag

Posté : 21 avr. 2016 09:45
par Nyrhu
En effet, me flag physique ne fonctionne plus :p (je fais évoluer mon code sans arrêt^^), j'ai donc adapté le code suis tes conseils :)