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

Scripts/Batch Discussion :

Problème avec un set dans un if dans une boucle


Sujet :

Scripts/Batch

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 70
    Points : 76
    Points
    76
    Par défaut Problème avec un set dans un if dans une boucle
    Bonjour à tous !

    Alors voici mon problème : j'ai une boucle dans laquelle je fais un if. Voici
    le bout de code....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    FOR /L %%i IN (%NBSEMAINES%,-1,1) DO (
    if %%i LEQ 9 (
    (SET DOSSIERSUPP=%DOSSIER%\BACKUP_SEMAINE_0%%i)
    echo %DOSSIERSUPP%
    ) ELSE (
    (SET DOSSIERSUPP=%DOSSIER%\BACKUP_SEMAINE_%%i)
    echo %DOSSIER%\BACKUP_SEMAINE_%%i
    )
    )
    Mon problème est que j'ai le message d'erreur "ECHO Désactivée". Je
    pense que ça doit être à cause de mon set mais je ne suis pas sûr...

    Quelqu'un aurait une idée ???

    Merci beaucoup !!!!!!!!

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Il n'y a pas un "@echo off" en début de ton .bat ?

  3. #3
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Il faut activer l'expansion retardée des variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    setlocal enableDelayedExpansion 
    
    FOR /L %%i IN (%NBSEMAINES%,-1,1) DO (
    if %%i LEQ 9 (
    (SET DOSSIERSUPP=!DOSSIER!\BACKUP_SEMAINE_0%%i)
    echo !DOSSIERSUPP!
    ) ELSE (
    (SET DOSSIERSUPP=!DOSSIER!\BACKUP_SEMAINE_%%i)
    echo !DOSSIER!\BACKUP_SEMAINE_%%i
    )
    )
    
    endlocal
    C'est dans la FAQ: http://windows.developpez.com/faq/ba...s#var_expanded

  4. #4
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Oui le "commande echo desactivé" correspond à un echo sans texte.
    Lorsque tu fais echo %DOSSIERSUPP%, ton %DOSSIERSUPP% est vide et donc en fait tu fais réellement un echo tout seul d'où le message.

    Et si ton %DOSSIERSUPP% est vide c'est effectivement car tu n'utilises pas les expansions retardées de variables.
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2008
    Messages : 70
    Points : 76
    Points
    76
    Par défaut
    Merci beaucoup !!!!!!! Ca marche maintenant !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/04/2015, 12h50
  2. Problème avec mon appli mis en icone dans la barre des tâches
    Par Leray dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 10/04/2007, 20h30
  3. Réponses: 3
    Dernier message: 15/03/2007, 12h36
  4. Réponses: 15
    Dernier message: 21/02/2007, 17h29
  5. problème avec un telechargement d'un .csv dans Excel
    Par olosta dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/05/2006, 03h29

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