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 :

Traitement chaine de caractere + boucle [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mars 2020
    Messages : 5
    Par défaut Traitement chaine de caractere + boucle
    Bonjour,

    j'ai un fichier texte de type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    22152 5688 03/31 16:07:09 5675 Run() - VM SATURNE          --> FAILED                      Virtual Machine was not found.
    22152 5688 03/31 16:07:09 5675 Run() - VM JUNIPER           --> FAILED                     Virtual Machine error.
    ou je recherche certaine lignes par chaine de caractères.(FAILED en l'occurence)

    j'ai fais ceci :
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
        for /f "tokens=9,12*" %%a in ('type fichier.txt ^|findstr /R /C:"--> FAILED"') do call :doWork "%%a"
        pause
    :doWork
        SET "VM=%~1"
        echo %VM%
        goto :EOF


    J'aimerai avoir un fichier de sorti du type :
    VM : SATURNE / Virtual Machine was not found.
    VM : JUNIPER / Virtual Machine error.
    ....
    Alors que j'ai
    SATURNE
    JUNIPER
    .....
    Merci d'avance...

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Bonjour,

    Tu te compliques un peu la vie, voilà une version simplifiée :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
    for /f "eol=. tokens=1,* delims=-" %%a in ('findstr /C:"--> FAILED" fichier.txt') do call :doWork "%%b"
    pause
    :doWork
    SET "VM=%~1"
    echo %VM%
    goto :eof

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Mars 2020
    Messages : 5
    Par défaut
    Merci barnabe0057 ,

    je voudrais ensuite sortir de la boucle afin de poursuivre le traitement, je ne vois pas ou poser la suite du code ?
    Cdt

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Il y a 2 possibilités, ça dépend de ce que tu veux faire.

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off
     
    for /f "eol=. tokens=1,* delims=-" %%a in ('findstr /C:"--> FAILED" fichier.txt') do call :doWork "%%b"
     
    pause
    exit
     
    :doWork
     
    SET "VM=%~1"
    echo %VM%
     
    goto :eof

    Si tu veux travailler sur les résultats de la boucle FOR tu mets ton code dans la routine :doWork
    Si tu veux faire autre chose tu mets ton code entre la boucle FOR et la pause.

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

Discussions similaires

  1. traitement chaine de caractere
    Par Nako_lito dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/10/2009, 18h14
  2. fonctions de traitements de chaines de caracteres
    Par jerem001_5 dans le forum C
    Réponses: 19
    Dernier message: 24/11/2005, 20h47
  3. Cherche fonction de traitement de chaine de caractere
    Par DeezerD dans le forum Langage
    Réponses: 1
    Dernier message: 10/09/2005, 14h41
  4. traitement chaine de caractere
    Par mohamed dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 30/10/2004, 21h37
  5. Réponses: 5
    Dernier message: 21/07/2004, 19h34

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