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 :

Bug dans une boucle for ?


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Par défaut Bug dans une boucle for ?
    Bonjour,

    J'ai un souci avec un batch.
    J'ai un document texte (%FileName%.txt) avec une suite de caractères qui composent des transactions.
    Chaque transaction débute toujours par : 0087TR88D
    Je souhaite découper cette chaine pour que chaque transaction s'affiche sur une ligne.

    Comme je ne peux pas me servir d'une boucle for avec un delimiteur (car le délimiteur fait 9 caractères et pas un seul), je mets ma chaine dans une variable, j'identifie le délimiteur (les 9 premiers caractères de la chaine, soit 0087TR88D) et je fais un remplacement de ce délimiteur 0087TR88D par *0087TR88D
    Et ensuite, je peux faire une boucle for et me servir de l'étoile comme nouveau délimiteur.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for /f "delims=" %%i in ('type ".\%FileName%.txt"') do ( set FileContent=%%i )
    set Delimiter=%FileContent:~0,9%
    setlocal enabledelayedexpansion
    set FileContentDelimited=!FileContent:%Delimiter%=*%Delimiter%!
    for /f "delims=*" %%j in ("%FileContentDelimited%") do ( echo %%j>> .\result.txt )
    Sauf que cela ne fonctionne pas ...
    Ca ne me prend que la 1e transaction ...
    Si je rajoute un tokens=*, ca va me mettre toute la chaine de caractères à la suite, sans retour à la ligne entre chaque transaction ...

    Je veux bien un petit peu d'aide !
    Merci !

  2. #2
    Membre confirmé Avatar de fabrice.s
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 120
    Par défaut
    Salut,

    aurais tu un exemple de ton fichier txt?

    tes transaction sont à la suite les une des autres, sur la même ligne ou une par ligne?

    Merci.

  3. #3
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    Tu as vérifié que les retours chariots de ton fichier d'entrée sont bien présents et au format Windows ?

Discussions similaires

  1. Bug de variable dans une boucle for
    Par setni dans le forum Langage
    Réponses: 3
    Dernier message: 29/05/2014, 10h08
  2. [MySQL] bug dans une boucle for
    Par skyarnangel dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 11/05/2010, 14h08
  3. Problème avec une DLL dans une boucle For
    Par BraDim dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2005, 12h22
  4. [batch] incrémentation dans une boucle for
    Par bart64 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 08/09/2004, 20h05
  5. Réponses: 3
    Dernier message: 06/07/2004, 10h21

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