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

Résolu/Fermé
Blaster225 Messages postés 15 Date d'inscription mercredi 9 avril 2014 Statut Membre Dernière intervention 28 avril 2014 - Modifié par Blaster225 le 22/04/2014 à 12:22
Blaster225 Messages postés 15 Date d'inscription mercredi 9 avril 2014 Statut Membre Dernière intervention 28 avril 2014 - 28 avril 2014 à 10:59
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
22 avril 2014 à 14:10
hello
"Debut" et "Fin" inclus ou pas ?
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 22/04/2014 à 16:26
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 mercredi 9 avril 2014 Statut Membre Dernière intervention 28 avril 2014
22 avril 2014 à 16:33
Merci dubcek je vais essayer tout de suite et je te tiens au courant
0
Blaster225 Messages postés 15 Date d'inscription mercredi 9 avril 2014 Statut Membre Dernière intervention 28 avril 2014
23 avril 2014 à 10:42
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
23 avril 2014 à 11:07
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 mercredi 9 avril 2014 Statut Membre Dernière intervention 28 avril 2014
23 avril 2014 à 12:06
Merci ça fonctionne; je peux rediriger le résultat dans un fichier HTML?
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
23 avril 2014 à 12:51
oui, : nom_du_script > fichier.html
0
Blaster225 Messages postés 15 Date d'inscription mercredi 9 avril 2014 Statut Membre Dernière intervention 28 avril 2014
23 avril 2014 à 17:15
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
24 avril 2014 à 08:19
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 mercredi 9 avril 2014 Statut Membre Dernière intervention 28 avril 2014
24 avril 2014 à 14:22
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
24 avril 2014 à 14:26
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 mercredi 9 avril 2014 Statut Membre Dernière intervention 28 avril 2014
24 avril 2014 à 16:25
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 mercredi 9 avril 2014 Statut Membre Dernière intervention 28 avril 2014
24 avril 2014 à 18:57
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
24 avril 2014 à 16:33
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 mercredi 9 avril 2014 Statut Membre Dernière intervention 28 avril 2014
24 avril 2014 à 19:01
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
25 avril 2014 à 08:19
0
Blaster225 Messages postés 15 Date d'inscription mercredi 9 avril 2014 Statut Membre Dernière intervention 28 avril 2014
25 avril 2014 à 10:31
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
25 avril 2014 à 13:23
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 mercredi 9 avril 2014 Statut Membre Dernière intervention 28 avril 2014
28 avril 2014 à 10:59
Merci infiniment dubcek. Cela fonctionne à la perfection, tu m'ôtes plus qu'une épine du pied. Sujet résolu
0