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

Résolu
PogiAko Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
PogiAko Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -
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

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 634
 
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
PogiAko Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 634
 
montre un exemple de texte
0
PogiAko Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Ç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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 634
 
compliqué à faire en DOS/ bat
on peut utiliser des commandes Unix pour DOS comme sed ou awk
0
PogiAko Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   > dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention  
 
Malheureusement nous n'avons pas d'UNIX :(
0