Script pour la récupération d'une partie d'un fichier

Résolu
Blaster225 Messages postés 18 Statut Membre -  
Blaster225 Messages postés 18 Statut Membre -
Bonjour à tous,
je suis débutant en scripts et je cherche un script pour copier une partie d'un fichier. Par exemple, si j'ai ceci:

hghfghdgfd
ioezuztgbvq
Debut
dhjfhdjhd
djfhjdhjfdj
bjdvbdv
ghfghfgdh
Fin
fjkfjfd
hjhfjd

Et que je souhaite récupérer le texte compris entre "Debut" et "Fin", comment je fais?
Merci d'avance

18 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    "Debut" et "Fin" inclus ou pas ?
    0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    si c'est inclus
    C:> cc
    Debut
    dhjfhdjhd
    djfhjdhjfdj
    bjdvbdv
    ghfghfgdh
    Fin
    C:> type cc.bat
    @echo off
    setlocal enableDelayedExpansion
    set p=0
    for /f "delims=" %%a in (fichier.txt) do (
    if "%%a"=="Debut" set p=1
    if !p! EQU 1 echo %%a
    if "%%a"=="Fin" set p=0
    )
    0
  3. Blaster225 Messages postés 18 Statut Membre
     
    Merci dubcek je vais essayer tout de suite et je te tiens au courant
    0
  4. Blaster225 Messages postés 18 Statut Membre
     
    Je dois taper ça en ligne de commande ou en faire un script? Supposons que le texte suivant:
    hghfghdgfd
    ioezuztgbvq
    Debut
    dhjfhdjhd
    djfhjdhjfdj
    bjdvbdv
    ghfghfgdh
    Fin
    fjkfjfd
    hjhfjd
    Soit dans un fichier test.txt
    Ce sont les instructions C:> cc et C:> type cc.bat que je ne comprends pas
    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
     
    cc.bat est le nom du script, comme il y a plusieurs lignes il faut mieux faire un script.
    en tapant cc j'exécute le script cc.bat
    on peut le nommer comme on veut
    0
  7. Blaster225 Messages postés 18 Statut Membre
     
    Merci ça fonctionne; je peux rediriger le résultat dans un fichier HTML?
    0
  8. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    oui, : nom_du_script > fichier.html
    0
  9. Blaster225 Messages postés 18 Statut Membre
     
    Ok. J'ai un dernier souci. Le texte

    hghfghdgfd
    ioezuztgbvq
    Debut
    dhjfhdjhd
    djfhjdhjfdj
    bjdvbdv
    ghfghfgdh
    Fin
    fjkfjfd
    hjhfjd

    est dans un fichier appelé fichier.txt
    Comment ecrire le script pour recuperer le texte entre "Debut" et "fin" sans passer par la ligne de commande? Juste un script qui fait une recherche dans un fichier, dont on met les bornes, par exemple Debut et Fin?
    0
  10. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    je n'ai pas très bien compris.
    on peut mettre des variables
    @echo off
    setlocal enableDelayedExpansion
    set t1=Debut
    set t2=Fin

    set p=0
    for /f "delims=" %%a in (fichier.txt) do (
    if "%%a"=="%t1%" set p=1
    if !p! EQU 1 echo %%a
    if "%%a"=="%t2%" set p=0
    )
    0
  11. Blaster225 Messages postés 18 Statut Membre
     
    Maintenat, comment faire pour que le resultat de ce script soit redirigé dans un autre fichier?
    A quel niveau du script je dois mettre " > autre_fichier.txt" ?
    0
  12. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    soit à l'appel du script : script > fichier.txt
    soit dedans avec doubles >
    if !p! EQU 1 echo %%a >> fichier.txt
    0
  13. Blaster225 Messages postés 18 Statut Membre
     
    Ca fonctionne à merveille! Merci infiniment. Mais j'ai encore une question: et si au lieu de "Debut", j'ai "Debut de l'ecriture du livre"?
    En d'autres termes, si au lieu de mettre un mot, je souhaite mettre une chaine de caractères?

    Ce sera set t1=Debut de l'ecriture du livre ???
    0
    1. Blaster225 Messages postés 18 Statut Membre
       
      Je souhaiterais t'envoyer le script et le fichier duquel je dois extraire des données. Dis moi comment faire stp
      0
  14. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    oui
    à tester si il y a des caractères spéciaux interprétés par DOS, peut-être & > | etc
    0
  15. Blaster225 Messages postés 18 Statut Membre
     
    C'est vraiment urgent. Merci d'avance pour ta sollicitude. Montre moi comment t'envoyer le code et le fichier stp
    0
  16. Blaster225 Messages postés 18 Statut Membre
     
    Voici l'adresse du fichier dans duquel je veux copier une partie:

    https://www.cjoint.com/?3DzkBFH5KUr

    Je veux copier les lignes entre PARAMÔTRES UTILISATEURS et Objets Strat'gie de groupe appliqu's
    Merci d'avance
    0
  17. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    c'est la m........ à cause des accents, espaces, etc ...
    ceci à l'air ok
    on remplace les accents par un point
    @echo off
    set fichier=3DzkBFH5KUr_sodw4608.txt
    set t1=PARAM.TRES UTILISATEURS
    set t2=Objets Strat.gie de groupe appliqu.s
    setlocal enableDelayedExpansion
    set p=0
    for /f "delims=" %%a in (%fichier%) do (
    echo %%a | findstr /r /c:"%t1%">NUL
    if !errorlevel! EQU 0 set p=1
    if !p! EQU 1 echo %%a
    echo %%a | findstr /r /c:"%t2%">NUL
    if !errorlevel! EQU 0 set p=0
    )
    0
  18. Blaster225 Messages postés 18 Statut Membre
     
    Merci infiniment dubcek. Cela fonctionne à la perfection, tu m'ôtes plus qu'une épine du pied. Sujet résolu
    0