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

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



A voir également:

18 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
"Debut" et "Fin" inclus ou pas ?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
Blaster225 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Merci dubcek je vais essayer tout de suite et je te tiens au courant
0
Blaster225 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
Blaster225 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Merci ça fonctionne; je peux rediriger le résultat dans un fichier HTML?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
oui, : nom_du_script > fichier.html
0
Blaster225 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
Blaster225 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
soit à l'appel du script : script > fichier.txt
soit dedans avec doubles >
if !p! EQU 1 echo %%a >> fichier.txt
0
Blaster225 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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
Blaster225 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Je souhaiterais t'envoyer le script et le fichier duquel je dois extraire des données. Dis moi comment faire stp
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
oui
à tester si il y a des caractères spéciaux interprétés par DOS, peut-être & > | etc
0
Blaster225 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
C'est vraiment urgent. Merci d'avance pour ta sollicitude. Montre moi comment t'envoyer le code et le fichier stp
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
0
Blaster225 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
Blaster225 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Merci infiniment dubcek. Cela fonctionne à la perfection, tu m'ôtes plus qu'une épine du pied. Sujet résolu
0