IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

[BATCH] Aide sur boucle for et test


Sujet :

Windows

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 160
    Points
    160
    Par défaut [BATCH] Aide sur boucle for et test
    Bonjour, je dois réaliser un script batch pour mon travail mais je rencontre un petit problème avec la boucle for et les tests que j'effectue.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    SET %HOME%=C:\
    SET LOGFILE=C:\test.log
    SET LOGTMP=c:\test.tmp
    
    echo ##### Copy  ##### >> %LOGFILE%
    copy toto.txt %HOME%
    copy titi.txt %HOME%
    copy tutu.txt %HOME%
    
    REM Test de la présence des fichiers dans %HOME%
    FOR %%i in (toto.txt tutu.txt titi.txt)
    do 
          if EXIT %HOME\%%i (echo OK : %%i >> %LOGFILE%) 
          Else (goto END) 
    
    pause
    exit 0
    
    :END
    echo KO : %%i : see %LOGTMP% >> %LOGFILE%
    exit 1

    Si la présence est , j'obtiens dans mon log :

    Ok : toto.txt
    Ok : tutu.txt
    Ok : titi.txt


    Par contre si ce n'est pas bon, dans le log j'ai :

    Ko : %i see C:\test.tmp

    Je ne comprends pas pourquoi le %%i ne garde pas en mémoire la valeur du for!

    Merci de votre aide

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par t_om84
    Je ne comprends pas pourquoi le %%i ne garde pas en mémoire la valeur du for!
    C'est un pb de portée, la variable %%i n'existe plus en sortie de boucle, il te faut donc la mémoriser par qq chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Else set Var_i=%%I&(goto END)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 160
    Points
    160
    Par défaut
    D'accord, je testerai ça demain au travail.

    Merci beaucoup

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 160
    Points
    160
    Par défaut
    C'est bon, ça marche!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Blocage sur boucle for
    Par guillaume17 dans le forum Langage
    Réponses: 20
    Dernier message: 01/07/2008, 16h03
  2. [batch] problème avec boucle for
    Par TanEk dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 22/04/2008, 14h41
  3. [Batch] Aide sur un Menu
    Par jockyboss777 dans le forum Windows
    Réponses: 3
    Dernier message: 26/08/2007, 13h27
  4. Structure while avec une boucle for en test
    Par le_voisin dans le forum C++
    Réponses: 9
    Dernier message: 09/09/2006, 19h16
  5. aide vba boucle for each paramétrée en range
    Par gotlieb dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/07/2006, 08h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo