Batch pour decouper un fichier txt

Résolu
sam0ray Messages postés 29 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  3. sam0ray Messages postés 29 Statut Membre
     
    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
    0
  4. sam0ray Messages postés 29 Statut Membre
     
    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.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    pour ignorer la casse utiliser findstr /i
    0