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 de IF dans une boucle FOR [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2020
    Messages : 3
    Par défaut Probléme de IF dans une boucle FOR
    Bonjour, je suis débutant sur les scripts j'essaie de me former sur le batch mais je rencontre des erreurs que je n'arrive pas à résoudre.
    Quand je lance le script il se ferme directement donc j'ai pas la possibilité de débug.

    Voici la partie qui me pose problème. Cette partie a pour objectif d'établir une liste de poste dans un format normalisé. Cette liste se trouvera dans le fichier Postetest.txt
    Je pense que c'est un problème de syntaxe mais je n'arrive pas a comprendre où.

    Code Batch : 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
    for /l %%v in (X, 1,Y) do (
    set /a nbpc=%%v
    echo !nbpc!
    if "%%v"lss"10" (
    		echo Win10-00%%v>>Postetest.txt
    		echo 00%%v
    		timeout 1
    		) else (
    			if "%%v"lss"100" (
    					echo Win10-0%%v>>Postetest.txt
    					echo 0%%v
    					timeout 1
    					) else (
    						echo Win10-%%v>>Postetest.txt
    						echo %%v
    						timeout 1
    )))
    pause

    Si vous avez un peu de temps à perdre, merci!

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Tu doit mettre un espace entre les valeurs testées et opérateurs
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    if "%%v" lss "100"

    Laisse moi te proposer autre chose, parcque la c'est l'enfer les if imbriqués ...

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SETLOCAL ENABLEDELAYEDEXPANSION
    for /l %%v in (1,1,999) do (
    	set nbpc=00%%v
    	echo Win10-!nbpc:~-3!>>Postetest.txt
    )

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2020
    Messages : 3
    Par défaut
    Merci! vraiment une erreur toute bête ^^'

    Ton deuxième code est effectivement plus propre mais je n'arrive pas à mettre une valeur en dessous de 100 pour la boucle FOR. Mes valeurs peuvent varier de 2 a 250.

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Citation Envoyé par Xoma-FR Voir le message
    je n'arrive pas à mettre une valeur en dessous de 100 pour la boucle FOR.
    Je ne comprend pas.
    001
    002
    003
    c'est en dessous de 100 non ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2020
    Messages : 3
    Par défaut
    Oui absolument mais si je choisi d’arrêter la liste a 33 au lieu de 999 ton script ne prend pas la valeur. Ou j'ai mal tester ^^'

    C'est bon j'ai juste pris l'intérieur de ta boucle au lieu de la boucle entière Merci beaucoup! c'est beaucoup plus propre!

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

Discussions similaires

  1. [XSLT 2.0] Problème de contexte dans une boucle « for-each »
    Par AgRaph dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 24/07/2019, 09h49
  2. problème d'iterator dans une boucle for
    Par cup of tea dans le forum Débuter
    Réponses: 2
    Dernier message: 10/01/2012, 17h31
  3. Problème d'écriture dans une boucle for
    Par manaliac dans le forum Général Python
    Réponses: 1
    Dernier message: 13/07/2010, 16h46
  4. Problème d'indexage dans une boucle FOR-END
    Par RAMZOON dans le forum MATLAB
    Réponses: 3
    Dernier message: 19/10/2007, 00h59
  5. Problème avec une DLL dans une boucle For
    Par BraDim dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2005, 12h22

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