Extraction de ligne de plusieurs fichier texte en batch

Fermé
Ark4nox - 10 sept. 2014 à 11:27
 Ark4nox - 11 sept. 2014 à 09:31
Bonjour,

ma question est simple, j'ai besoin d'extraire une ligne précise de plusieurs fichiers texte et de stocker le résultat dans un autre fichier texte séparer par une virgule.

Voila le code que j'ai, mais le problème est qu'il me retourne uniquement la ligne du dernier fichier traité.

for /F "skip=5 delims=: tokens=1" %%a in ('type t*.lds') do echo %%a > result.txt

Dans l'attente d'une réponse
merci
A voir également:

2 réponses

kaumune Messages postés 22530 Date d'inscription lundi 26 novembre 2007 Statut Contributeur Dernière intervention 16 novembre 2024 5 087
Modifié par kaumune le 10/09/2014 à 11:39
Slt

Ça te crée à chaque fois un fichier result.txt qui écrase le précédent.

Mets >> result.txt au lieu de > result.txt

Ça ajoutera les résultats au fichier txt
0
Pour mes test, les 2 fichier lds sont comme ça :
1
2
3
4
5
6

Après la modif, le résultat est comme ça :

61
2
3
4
5
6

Donc, il n'y a pas de séparation par une virgule, puis il récupère toutes les lignes du deuxième fichier.
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
10 sept. 2014 à 14:29
hello
quel doit être le résultat ? 6,6 ?
0
oui, j'aimerais que le résultat soit sous la forme 6,6
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
10 sept. 2014 à 15:45
essayer
@echo off
setlocal enabledelayedexpansion
set r=
for %%a in (t*.lds) do (
for /F "skip=5 delims=: tokens=1" %%b in (%%a) do set r=%%b,!r!
)
set r=!r:~0,-1!
echo !r!
0
Ca marche sur mes test mais pas sur les fichiers en question, les fichier ressemble a ça :

<LDS001>
<idx nb=11>

01/09/2014

2186137
SOCIETE





https://logiciel.societe.com/OBJ/FW.ASP?T=DUP&ID=1404337Vut6yrxAnlRMv3K
<stamp nb=11>

01/09/2014

2186137
SOCIETE





https://logiciel.societe.com/OBJ/FW.ASP?T=DUP&ID=1404337Vut6yrxAnlRMv3K

En résultat, il me met toutes les phrase bout a bout, j'aimerais récupérer juste le chiffre au dessus de "SOCIETE", dans l'exemple c'est 2186137. Le problème vient du skip, mais je ne connait pas d'autre alternative.

Merci beaucoup
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
11 sept. 2014 à 09:16
skip saute 5 lignes mais continue après, de plus for ignore les lignes vides,
avec un compteur à la place de skip et avec ligne=4 à cause des lignes vides
@echo off
setlocal enabledelayedexpansion
set ligne=4
set r=
for %%a in (f*.txt) do (
set c=1
for /F "delims=: tokens=1" %%b in (%%a) do (
if !c! EQU %ligne% set r=%%b,!r!
set /a c+=1
)
)
set r=!r:~0,-1!
echo !r!
0
Merci ça marche nickel. Vous êtes super ^^
0