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.

  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