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 :

Findstr dans une boucle for [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 44
    Par défaut Findstr dans une boucle for
    Bonjour,
    afin d'automatiser une recherche de fichier je souhaite faire une recherhce FINDSTR avec en chaine rechercher le %%I de ma boucle for


    je recherche des evenements à partie des heures (15:05:52)

    la première partie de mon code permet de prendre toutes les lignes au format 15:05:52 poour les remettre dans un fichier temporaire (TEMP.TXT) au format 150552 (format dans les fichiers de log) - (
    au passage si vous avez mieux je suis preneur pour virer les ":" mais ca marche donc on verra plus tard)


    ensuite ma seconde boulce for recupere dans mon fichier TEMP.TXT les horaires au format HHMMSS

    je souhaite réaliser alors une recherche dans les sous repertoire : donc Findstr ( et pause pour lire le resultat avant de faire la ligne suivante)

    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo OFF
     FOR /F "tokens=1,2* delims=:" %%i IN ('find /V "BIDON" data.fic') DO echo %%i%%j%%k>>temp.txt
     
    FOR /F "skip=1 tokens=1,2* delims= " %%i  IN ('find /V "BIDON" temp.txt') DO (
    findstr /s "%%i" *.*
    pause
    )
     
    del temp.txt



    j obtitn bien ce que je veux mais le traitement bloque sur les lignes : ------------- NOM DE FICHIER .EXT de la commande FINDSTR
    soit il faut que j'affiche sans le nom de fichier (ce que je n'arrive pas a faire)
    soit que sache mieux traiter ces 2 première lignes
    la ca m'oblige a faire 2 CTRL+C pour passer l'étape


    Code bat : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    C:\TEMP\vacationnel\1.9>faire
    C:\TEMP\vacationnel\1.9>rem @echo OFF
    C:\TEMP\vacationnel\1.9>rem FOR /F "tokens=1,2* delims=:" %i IN ('find /V "BIDON" data.fic') DO echo %i%j%k>>temp.txt
    C:\TEMP\vacationnel\1.9>rem pause
    C:\TEMP\vacationnel\1.9>FOR /F "skip=1 tokens=1,2* delims=" %i IN ('find /V "BIDON" temp.txt') DO (
    rem echo %i
     SET "search=%i"
     rem findstr /s "155430" *.*
     findstr /s "%i" *.*
     pause
    )
    C:\TEMP\vacationnel\1.9>(
    rem echo ---------- TEMP.TXT
     SET "search=---------- TEMP.TXT"
     rem findstr /s "155430" *.*
     findstr /s "---------- TEMP.TXT" *.*
     pause
    )
    FINDSTR : /- ignoré
    FINDSTR : /- ignoré
    FINDSTR : /- ignoré
    FINDSTR : /- ignoré
    FINDSTR : /- ignoré
    FINDSTR : /- ignoré
    FINDSTR : /- ignoré
    FINDSTR : /- ignoré
    FINDSTR : /- ignoré
    FINDSTR : /  ignoré
    FINDSTR : /T ignoré
    FINDSTR : /. ignoré
    FINDSTR : /T ignoré
    FINDSTR : /T ignoré
    ^CAppuyez sur une touche pour continuer...
    Terminer le programme de commandes (O/N) ? o


    Si quelqu'un a une idée, je prends.
    D'avance, merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 44
    Par défaut
    Bonjour j'ai trouvé ( j'ai changé find par type)
    et j'ai virer la ligne qui me convenait pas via find

    si ca peut servir a d'autre (je pense quand meme que le code est ameliorable)

    Code BAT : 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
    19
    20
    21
    22
    23
    24
    25
    26
     
    @echo OFF
    SET COUNT=1
    setlocal enabledelayedexpansion 
    cls
    FOR /F "tokens=1,2* delims=:" %%i IN ('find /V "-" data.fic') DO echo %%i%%j%%k>>temp.txt
    copy temp.txt temp2.txt
    FIND /V /I "-" <temp2.txt>temp.txt
    del temp2.txt
    cls
     
    FOR /F "tokens=1,2* delims=" %%i  IN ('type temp.txt') DO (
    REM SET "search=%%i"
     
    Echo #######################ANALYSE####################################
    Echo liste des fichiers contenant une operation concordante
    Echo recherche de l'operation effectuee a: %%i
    Echo ligne non vide Numero : !COUNT!
    findstr /s "%%i" *.*
    pause
    cls
    SET /A COUNT+=1
    )
     
    del temp.txt
    endlocal

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

Discussions similaires

  1. [Batch] Pb avec la commande "Findstr" dans une boucle "For"
    Par Salent dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 10/12/2012, 13h57
  2. Shell - Erreur dans une boucle for
    Par claralavraie dans le forum Linux
    Réponses: 4
    Dernier message: 11/01/2006, 13h45
  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