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 et variable dynamique


Sujet :

Scripts/Batch

  1. #1
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Points : 87
    Points
    87
    Par défaut boucle et variable dynamique
    Bonjour à tous,

    Je réalise un petit script qui configure un poste avec une ip parmi une liste de 5. Il boucle en effectuant un ping, si l'ip n'est pas disponible, il passera à la seconde.

    En gros je cherche à faire un foreach sur un tableau

    Ma boucle (qui remplace mon foreach) fonctionne impeccable sauf que je rencontre un problème avec l'ip lors du ping. Je ne vois pas comment je peux modifier la varaible de façon dynamique.

    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
    set test=
    
    :SMF
    set ip1=
    set ip2=
    set ip3=
    set ip4=
    set ip5=
    GOTO TEST
    
    :TEST
    SET /a test+=1
    if /i %test% equ 6 (
        GOTO DISPO
    ) else (
        ping -n 1 <ma_variable_ip> | find /C "perte 100" 1>nul 2>nul
        if errorlevel 1 (
            GOTO TEST
        ) else (
            netsh interface ip set address ...
            netsh interface ip set dns ..
            sleep 3
        )
    )
    GOTO EOF
    Quelqu'un aurait il une idée ?
    Merci d'avance

  2. #2
    Membre chevronné
    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
    Points : 1 991
    Points
    1 991
    Par défaut
    Salut,

    par une boucle For /L la chose devient plus facile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @echo off
    setlocal enabledelayedexpansion
    set ip1=
    set ip2=
    set ip3=
    set ip4=
    set ip5=
    
    for /L %%i in (1,1,5) do (
       ping -n 1 !ip%%i!|find /C "perte 100" 1>nul 2>nul
       if not errorlevel 1 (echo:OK !ip%%i!)
    )
    
    pause

  3. #3
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Points : 87
    Points
    87
    Par défaut
    Je teste ça tout de suite, merci I'm_HERE

  4. #4
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Points : 87
    Points
    87
    Par défaut
    C'est presque tout bon. J'ai un soucis pour sortir de la boucle.. si une ip est disponible. Un simple GOTO EOF ne semble pas reconnu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for /L %%i in (1,1,5) do (
        ping -n 1 !ip%%i!|find /C "perte 100" 1>nul 2>nul
        if not errorlevel 1 (
            echo Une adresse est disponible,..
            netsh interface ip set address...
            netsh interface ip set dns...
            GOTO EOF
        )
    )
    GOTO DISPO
    Est ce qu'il y a une règle particulière pour sortir d'une boucle ?

    edit : le message d'erreur : Le système ne peut pas trouver le nom de fichier de commandes - EOF

  5. #5
    Membre chevronné
    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
    Points : 1 991
    Points
    1 991
    Par défaut
    je crois que t'as oublier le : de Goto :EOF

  6. #6
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Points : 87
    Points
    87
    Par défaut
    Par où je dois aller pour me cacher..
    Tout fonctionne de façon impeccable. Merci encore une fois I'm_HERE

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

Discussions similaires

  1. [AC-2010] Déclaration d'une variable "dynamique" dans une boucle
    Par docjo dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/11/2013, 23h08
  2. Variable dynamique dans boucle
    Par nicerico dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/03/2013, 15h23
  3. [MySQL] boucle variables dynamiques
    Par granchef dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 06/04/2010, 11h10
  4. Boucle et variables dynamiques
    Par ikaly29 dans le forum ASP
    Réponses: 1
    Dernier message: 25/03/2008, 13h53
  5. [FLASH8] Boucle variables dynamiques
    Par bractar dans le forum Flash
    Réponses: 2
    Dernier message: 04/01/2007, 01h45

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