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 :

Boucle if dans for Batch [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 8
    Par défaut Boucle if dans for Batch
    Bonjour ,

    Dans le cadre d'un projet , je souhaiterais imbriquer une condition if dans une boucle for.
    Malheureusement , quand je compile le code suivant , cela ne marche pas:

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    set "X="
    set /p "X=Votre reference ?"
    
    
    set /A "ref[0] = 13997-0"
    set /A "ref[1] = 14177-0"
    set /A "ref[2] = 14433-0"
    
    set /A "hex[0] = 758006802_P010"
    set /A "hex[1] = 758007002_P012"
    set /A "hex[2] = 758006902_P011"
    
    echo %ref[0]%
    
    
    
    setlocal enabledelayedexpansion
    
    FOR /L %%i IN (0 1 2) DO  (
     
    
       	if   "%X%" == "%ref[%%i]%" (
    
    
    			 call :Execute   %hex[%%i]%.hex
    			 
    
    		 	  	)
    
    
    
    )
    En fait , je souhaite parcourir un premier de tableau contenant des références , puis lorsque la case est trouvée , je voudrais exécuter un fichier qui passera un paramètre comprit dans la même case , mais du second tableau.

  2. #2
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut il y a plusieurs problème dans ton code :

    1- set /a : et pour des opération mathématique
    2- ne mets pas d'espaces dans un set :

    faux juste 3- Lorsque tu utilises l'expansion retardée utilise ! au lieu de % pour les variables standard

    Donc :

    Code bat : 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
    23
    24
    25
     
     
    @echo off
     
    set "X="
    set /p "X=Votre reference ?"
     
     
    set "ref[0]=13997-0"
    set "ref[1]=14177-0"
    set "ref[2]=14433-0"
     
    set "hex[0]=758006802_P010"
    set "hex[1]=758007002_P012"
    set "hex[2]=758006902_P011"
     
     
    setlocal enabledelayedexpansion
     
        FOR /L %%i IN (0 1 2) DO if "%X%"=="!ref[%%i]!" call :Execute !hex[%%i]!.hex
     
    exit/b
     
    :execute
    echo J'execute : %1


  3. #3
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 8
    Par défaut
    Merci ça marche bien maintenant !
    Merci pour ton temps

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

Discussions similaires

  1. [Batch] Boucle FOR avec Robocopy dans un batch
    Par jerems26 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 17/11/2016, 08h40
  2. [Batch] Boucle infini dans un batch
    Par Orichas dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 23/08/2016, 11h50
  3. Boucle dans un batch
    Par shadow31 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 20/04/2009, 10h49
  4. affecter variable dans boucle FOR batch
    Par efferalgan dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 25/10/2007, 14h25
  5. [SQL] Boucle SQL dans une boucle for
    Par architecte dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/08/2007, 11h47

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