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 à l'essai
    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
    Points : 12
    Points
    12
    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 à l'essai
    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
    Points : 12
    Points
    12
    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 éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 735
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 735
    Points : 15 147
    Points
    15 147
    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.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    Membre à l'essai
    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
    Points : 12
    Points
    12
    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 éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 735
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 735
    Points : 15 147
    Points
    15 147
    Par défaut
    Citation Envoyé par rooney06 Voir le message
    Mon batch fonctionne parfaitement maintenant
    Plus qu'à cliquer sur , en bas à gauche, alors
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

+ 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