[Batch] lister première ligne fichiers txt

Résolu
danieliiitooo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
danieliiitooo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -
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 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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   Statut Membre Dernière intervention   1
 
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 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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   Statut Membre Dernière intervention   1
 
En fait cela fonctionne. =)

Il faut que j'arrête la moquette.

Merci Dubcek
0