Page 1 sur 1

Afficher une chaîne issue d'un fichier texte

Posté : 10 mars 2009 16:22
par Cyboulette
Bonjour,
J'aimerais savoir si quelqu'un a déjà réussi à sortir d'un fichier log une partie d'une chaîne cherchée via findstr ou find.
Ma problématique serait la suivante :
La première partie de mon batch me concatène plusieurs fichiers dans un seul avec les commandes suivantes :
del /q resultat.txt
type *.txt | find /i "chaine" >> resultat
rename resultat resultat.txt
La chaine cherchée se trouve à la colonne 131, je me demandais s'il serait possible de l'afficher et de la compter dans un fichier, exemple :
rem for /f "delims=" %%a in ('find "chaine" resultat.txt') do set pieces=%%a:~0,131%%
Pour corser le tout, la chaine peut varier (il s'agit d'un nombre de pièces), donc j'aimerais la chercher avec les caractères jokers (les points je crois).
La chaine se trouverait entre deux positions définiées dans un fichier texte (exemple entre la position 131 et 135).
J'ai déjà fait un batch qui affiche une partie d'une valeur avec un echo %valeur:~25% mais jamais plusieurs valeurs à la suite listées dans un fichier.
Je sèche. Au secours !

Re: Afficher une chaîne issue d'un fichier texte

Posté : 11 mars 2009 12:42
par Cyboulette
Re-bonjour,

Je sèche toujours.
Le but du jeu serait d'extraire de chaque ligne d'un fichier pré-formaté une partie de texte située entre deux positions définies.
Par exemple, sortir les 4 caractères entre la position 131 et 135 d'un fichier texte et concaténer les résultats dans un autre fichier.
Le fichier texte de départ ne possède pas de délimitations, donc difficile d'utiliser un tokens/delims.

Merci de votre aide !

Cyboulette

Re: Afficher une chaîne issue d'un fichier texte

Posté : 18 mars 2009 22:07
par sam06
Pour ma part j'ai un fichier TXT dont certaines lignes contiennent un code emetteur en position 92 sur 16 caractères, que j'arrive à afficher avec la fonction findstr ; de là, la redirection vers un fichier ne devrait pas poser de pb ;)

Code : Tout sélectionner

@ echo off
for /f "delims=" %%i in ('type "fichier.txt" ^|findstr /i /r "EMETTEUR:"') do set LINE=%%i& call :sub
goto fin

:sub
REM echo %LINE%
echo  %LINE:~92,16%
pause

:fin

Re: Afficher une chaîne issue d'un fichier texte

Posté : 11 juin 2009 23:13
par Cyboulette
Un grand merci pour cette piste qui va sûrement beaucoup m'aider et toutes mes excuses pour le retard...