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 :

Bizarre "goto" dans boucle "for" impossible [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 52
    Par défaut Bizarre "goto" dans boucle "for" impossible
    bonjour (bonsoir),

    voici l'extrait de mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FOR /f "tokens=1-26 delims=	" %%a in (%fichier_listing%) do (
    if "%%a" NEQ "%name_system%" goto fin_main_boucle
    .....
    : fin_main_boucle
    )
    ==> strictement impossible de mettre un label goto à l'intérieur d'une boucle for.

    demande de l'aide SVP
    je viens de perdre 2H00

  2. #2
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    salut,

    sur ton étiquette, t'as mis un espace devant le nom après les ":"

    aussi, cette manière de procéder ne se fait pas...

  3. #3
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    salut,

    si on mets une etiquette on n'est plus dans le contexte de la boucle forindo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    for %%a in (a b c) do (  
      echo 1- %%a
      goto :suite
      :suite
      echo 2- %%a
    ) 
    pause
    à première vu celà casse la boucle mais si observe de plus près on constate que la boucle se deroiule normalement mais le saut goto trouble l''execution du code car on alterne entre contexte de boucle et contexte hors boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @echo off
    for /l %%a in ( 1 1 100000) do (  
      echo 1- %%a
      goto :suite
      :suite
      echo 2- %%a
    ) 
    pause

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 52
    Par défaut
    Merci "I'm_HERE"

    je suis assez d'accord avec toi,

    mais alors comment y remédier si je souhaite par exemple
    sauter une itération,
    sauter une fois ou plusieurs fois le corps de la boucle selon une condition défini ?

    parce là ce qui se passe c'est que la fenêtre se ferme brusquement avec le goto

    merci de ton aide

  5. #5
    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,

    Tu traites tout dans ta boucle comme te l'a montré I'm Here ()
    Ou sinon de cette manière ça devrait également fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    FOR /f "tokens=1-26 delims= " %%a in (%fichier_listing%) do (call:traite %%a)
    goto:eof
    
    :traite
    if "%1" NEQ "%name_system%" goto:fin_main_boucle
    goto:eof
    
    :fin_main_boucle
    Echo FIN_MAIN_BOUCLE

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 52
    Par défaut
    merci mais je ne peut pas m'en servir car dans mon fichier %fichier_listing%
    je ne sais jamais combien j'ai de %%a %%b %%c .....
    et donc les %1 %2 %3 .... vont beaucoup m'embetter

    dommage car je dois appeler mon label à l'intérieur de la boucle for

    cela dit je n'ai pas très bien compris la methode et le code proposé de "i'm_here"

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

Discussions similaires

  1. [vbnet 1.1]Inserer deux simple quote sans texte dans une db
    Par ChristopheOce dans le forum Windows Forms
    Réponses: 8
    Dernier message: 15/03/2007, 08h51
  2. [Fonction] Quote et guillemet dans un textarea
    Par ddelec24 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/03/2007, 15h51
  3. Réponses: 5
    Dernier message: 15/04/2005, 14h22

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