Batch pour decouper un fichier txt

[Résolu/Fermé]
Signaler
Messages postés
28
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
12 août 2010
-
Messages postés
18304
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
26 octobre 2021
-
Bonjour,

J'ai vu la solution poster par cs-bilou 8 fév 2010 à 19:03, que je le merci d'abord pour le script, mais je ne sais pas comment l'adapter au mon problème, ma questions est la suite :

1-Je veux découper mon fichier txt de n à la m ème ligne, comment faire?

Merci d'avance pour votre aide.

5 réponses

Messages postés
18304
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
26 octobre 2021
5 416
hello
C:> type f1.txt
1
2
3
4
5
6
7
8
9
10
C:> aa
3
4
5
6

C:> type aa.bat
@echo off

setlocal enableDelayedExpansion
set n=3
set m=6
set c=1
for /f "delims=" %%a in ('type f1.txt') do (
if !c! GEQ %n% if !c! LEQ %m% echo %%a
set /a c+=1
)
C:>
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
18304
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
26 octobre 2021
5 416
C:> type f1.txt
1
2
3-motcle1
4 blabla
5 blabla
6-motcle2
7

C:> aa
4 blabla
5 blabla

C:> type aa.bat
@echo off

setlocal enableDelayedExpansion
set n=motcle1
set m=motcle2
set /a x=0
set b=1
for /f "delims=" %%a in ('type f1.txt') do (
echo %%a | findstr  "%n%" > NUL
if !errorlevel! EQU 0 ( set /a x=1 & set b=0 )
echo %%a | findstr  "%m%" > NUL
if !errorlevel! EQU 0 set /a x=0
if !x! EQU 1 if !b! EQU 1 echo %%a
set b=1
)
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
28
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
12 août 2010

Thank you very very much dubcek,
nikel, le scripte marche très bien.
j'ai rajouté >>f2.txt dans le code pour enregistrer le résultat dans un autre fichier f2.txt:
.....
@echo off

setlocal enableDelayedExpansion
set n=3
set m=6
set c=1
for /f "delims=" %%a in ('type f1.txt') do (
if !c! GEQ %n% if !c! LEQ %m% echo %%a>>f2.txt
set /a c+=1
)
.....

je suppose que cette question est close sauf si vous avez une idée (mieux que la mienne) pour implémenter ce scripte dans mon code, la n et la m ème ligne correspond aux numéros de ligne de mot clés dans mon fichier d'origine donc j'ai penser de les stockés dans un fichier à part et dans un deuxième temps je le récupère pour arriver au fichier final je vous donne exemple dessous :

fichier1.txt
1
2
3-mot clé
4 blabla
5 blabla
6-mot clé
7


le résultat que je veux ateindre :

fichier2.txt
4 blabla
5 blabla
Messages postés
28
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
12 août 2010

Merci infiniment cher dubcek, c'est bien ce que je cherche.
j'ai un petit souci mais juste la forme des caractères, si je met le mot clé en majuscule il le reconnu pas, mais c'est pas grave.
Bravo Bravo Bravo 1000 fois.
Messages postés
18304
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
26 octobre 2021
5 416
pour ignorer la casse utiliser findstr /i