[Batch] lister première ligne fichiers txt

Résolu/Fermé
danieliiitooo Messages postés 20 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 1 octobre 2010 - 10 mars 2009 à 17:34
danieliiitooo Messages postés 20 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 1 octobre 2010 - 13 mars 2009 à 16:56
Bonjour,

Ci-dessous ma problématique:

Soit "Test" un répertoire contenant X fichiers .txt (X peut être 5,10,54...)

Chaque fichier contient une ligne de texte de la sorte

AAAAAAAA BBBBBBBBBB CCCCCCCCCC

Je souhaiterai, via batch, lister le contenu de ces fichiers dans un seul et unique fichier txt

AAAAAAAA BBBBBBBBBB CCCCCCCCCC
AAAAAAAA BBBBBBBBBB CCCCCCCCCC
AAAAAAAA BBBBBBBBBB CCCCCCCCCC
AAAAAAAA BBBBBBBBBB CCCCCCCCCC
....

Je pourrais alors exploiter son contenu à ma guise via fonction "for".

J'ai tenté la manipe suivante:

@echo off

Set path=Test

set /a nb_of_files=0

if exist "%path%\*.*" for /f "delims=" %%a in ('dir /-D /B "%path%\*.*"') do (
set /a nb_of_files+=1
Set /P File_content= <%path%\%%a
echo %File_content%>>log.txt
)
echo %nb_of_files% files have been loaded
pause

Le résultat est un peu à côté de la plaque:

ECHO is off.
ECHO is off.
ECHO is off.

Pourtant %%a correspond bien aux noms des fichiers successifs mais il y a un truc qui cloche.
On dirait que mon batch ne parvient pas à charger la première ligne des fichiers dans la variable File_content

Pouvez me dire comment y arriver ?

Merci d'avance,

Daniel
A voir également:

4 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
10 mars 2009 à 17:43
hello
tu veux copier tout le fichier ou une seule ligne de chaque fichier ?
et avec
copy *.txt destination.txt
0
danieliiitooo Messages postés 20 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 1 octobre 2010 1
12 mars 2009 à 09:50
Merci Dubcek,

Je ne souhaite récupérer que la première ligne (Chaque fichier contient une seule et unique ligne formattée de la même manière)

Malheureusement, la commande copy test\*.* destination.txt copie les données en vrac dans le fichier destination.txt.
Celles-ci sont alors inexploitable via fonction for.
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
12 mars 2009 à 10:12
qu'appelles tu en vrac ?

si (Chaque fichier contient une seule et unique ligne formattée de la même manière)
copy test\*.* destination.txt devrait fonctionner

>type z*
z1
aaaaaaaaaaa

z2
bbbbbbbbbbb

z3
cccccccccccc

>copy z* xxx
1 fichier(s) copié(s).

>type xxx
aaaaaaaaaaa
bbbbbbbbbbb
cccccccccccc

0
danieliiitooo Messages postés 20 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 1 octobre 2010 1
13 mars 2009 à 16:56
En fait cela fonctionne. =)

Il faut que j'arrête la moquette.

Merci Dubcek
0