Findstr, si trouvé m'afficher la 7ème ligne en dessus

Résolu
PogiAko Messages postés 11 Statut Membre -  
PogiAko Messages postés 11 Statut Membre -
Bonjour,

J'aurai besoin d'aide sur le sujet suivant:
J'aimerai faire un findstr sur un fichier, si le mot est trouvé, j'aimerai qu'on m'affiche la 7ème ligne en dessus de ce mot sur un notepad.

merci pour votre aide.

Cordialement

1 réponse

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    c contient la chaine à chercher
    f contient le nom du fichier
    @echo off
    set c=chaine
    set f=fichier.txt
    setlocal enableDelayedExpansion
    for /f "delims=: tokens=1" %%a in ('findstr /n %c% %f%') do (
    set l=%%a
    )
    set /a l-=7
    for /f "delims=: tokens=1,2" %%a in ('findstr /n . %f%') do (
    set x=%%b
    if %%a EQU !l! goto finxxx
    )
    :finxxx
    echo %x%
    1
    1. PogiAko Messages postés 11 Statut Membre
       
      Hello,

      Merci dubcek pour ta réponse, le script fonctionne à merveille.
      Enfin de compte j'aimerai changer ma stratégie:
      j'aimerai copier/couper tous les contenus d'une balise dans un fichier commencant par " { " et finissant par " -} " et le copier/couper dans un nouveau fichier .txt

      Merci beaucoup.

      Cordialement,
      0
    2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      montre un exemple de texte
      0
    3. PogiAko Messages postés 11 Statut Membre
       
      Ça ressemble à ça il peut y en avoir plusieurs dans un fichier


      {1:AAAA}{AAAA}A:{AAAA}}{A:
      :16R:AAAA
      :20C::AAAA
      :23G:AAAA
      :98A::AAAA
      :16R:AAAA
      :13A::AAAA
      :20C::AAAA
      :16S:AAAA
      :16R:AAAA
      :25D::AAAA
      :16S:AAAA
      :16S:AAAA
      :16R:AAAA
      :98A::AAAA
      :98A::AAAA
      :22H::AAAA
      :22H::AAAA
      :36B::AAAA
      :35B:AAAA
      :16S:AAAA
      -} {BBBBB}{BBBB}{B:{BBBB}}{B:
      :16R:BBBB
      :20C::BBBB
      :23G:BBBB
      :98A::BBBB
      :16R:BBBB
      :13A::BBBB
      :20C::BBBB
      :16S:BBBB
      :16R:BBBB
      :25D::BBBB
      :16S:BBBB
      :16S:BBBB
      :16R:BBBB
      :98A::BBBB
      :98A::BBBB
      :22H::BBBB
      :22H::BBBB
      :36B::BBBB
      :35B:BBBB
      :16S:BBBB
      -}
      0
    4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      compliqué à faire en DOS/ bat
      on peut utiliser des commandes Unix pour DOS comme sed ou awk
      0
    5. PogiAko Messages postés 11 Statut Membre > dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Malheureusement nous n'avons pas d'UNIX :(
      0