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 :

Pourquoi cette boucle n'ouvre-t-elle aucun fichier ? [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Par défaut Pourquoi cette boucle n'ouvre-t-elle aucun fichier ?
    Bonjour
    voici la boucle en question :
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . fic*.txt') do if %%i geq 1 if %%i leq 6 echo %%j >> result1.txt

    Normalement elle devrait ouvrir tous les fichiers qui commencent par "fic", mais elle n'ouvre qu'1 seul fichier et encore, à condition que j'écrive le nom au complet.
    Une boucle qui boucle pas c'est étrange.

    Quelqu'un peut-il me dire d'où vient le souci?

    Merci

    a+
    R'

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Par défaut
    Il y a du nouveau:
    si je n'écris pas le nom complet et que je mets un joker (*), le premier fichier s'ouvre et les opérations de traitement dans la suite du programme s’exécutent.
    MAIS cette 1ere boucle ne boucle pas.
    elle ne traite qu'1 seul fichier.
    les autres fichiers commençant par le même nom ne sont pas ouverts.
    Je ne vois pas pourquoi.

    les autres boucles, dans le programme traitent l'intérieur des fichiers, mais celle-ci qui doit ouvrir les fichier l'un après l'autre ne fonctionne pas en boucle.
    WHY ?????

    Merci de vos réponses

    a+
    R'
    .

  3. #3
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 142
    Par défaut
    Salut,

    je ne vais pas être d'une grande aide, ne sachant pas ce que contiennent tes fichiers fic*.txt, donc juste deux conseils et une remarque :
    1- travaille en console pure, tu passeras en batch une fois la console opérationnelle, donc %i au lieu de %%i et vire la redirection dans le result, tu verras ça après.
    2- vire tes tests "if...", tu les rajouteras 1 par 1 plus tard, quand l'étape précédente sera OK.

    J'ai créé viteuf' deux fichiers, fic1234.txt et fic56.txt, avec du nawak séparé par ":" dedans, ça ne fonctionne que si je vire le "if %i leq 6"... J'ai essayé avec 16 puis avec 206, même râteau... Mais je ne suis pas spécialiste DOS et je ne suis pas dans ta tête pour savoir ce que tu cherches avec ce script.

    Je te laisse creuser tout ça.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 26
    Par défaut
    Salut

    Merci beaucoup d'avoir pris le temps de me répondre.
    la ligne de batch s'est mise à fonctionner telle quelle.
    Je ne sais absolument pas pourquoi ce changement.
    par contre j'ai trouvé pourquoi cette boucle ne bouclait pas.
    en fait, au lieu de mettre vers le bas du programme call, "goto eof", j'avais mis "exit"
    bhein du coup, le programme ne faisait qu'1 seule passe, donc ne traitait qu'1 seul fichier.

    Mon batch fonctionne parfaitement maintenant

    Merci beaucoup de ton aide et de tes commentaires utiles.

    Roon'

  5. #5
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 142
    Par défaut
    Citation Envoyé par rooney06 Voir le message
    Mon batch fonctionne parfaitement maintenant
    Plus qu'à cliquer sur , en bas à gauche, alors

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

Discussions similaires

  1. [MySQL] Pourquoi cette requête préparée ne fonctionne-t'elle pas ?
    Par Alorslaçaprogramme dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 21/09/2015, 14h37
  2. Pourquoi cette fonction fonctionne-t'elle ?
    Par Alorslaçaprogramme dans le forum Langage
    Réponses: 10
    Dernier message: 30/03/2015, 13h10
  3. Réponses: 5
    Dernier message: 13/03/2014, 17h56
  4. Pourquoi une boucle For i = 1 to. . . commence-t-elle à 2 ?
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/03/2008, 10h41
  5. Pourquoi cette variable est-elle vide ?
    Par yann18 dans le forum Langage
    Réponses: 2
    Dernier message: 14/03/2008, 10h36

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