[Batch] lister première ligne fichiers txt [Résolu/Fermé]

Signaler
Messages postés
20
Date d'inscription
jeudi 30 octobre 2008
Statut
Membre
Dernière intervention
1 octobre 2010
-
Messages postés
20
Date d'inscription
jeudi 30 octobre 2008
Statut
Membre
Dernière intervention
1 octobre 2010
-
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

4 réponses

Messages postés
18232
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020
5 047
hello
tu veux copier tout le fichier ou une seule ligne de chaque fichier ?
et avec
copy *.txt destination.txt
Messages postés
20
Date d'inscription
jeudi 30 octobre 2008
Statut
Membre
Dernière intervention
1 octobre 2010

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.
Messages postés
18232
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020
5 047
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

Messages postés
20
Date d'inscription
jeudi 30 octobre 2008
Statut
Membre
Dernière intervention
1 octobre 2010

En fait cela fonctionne. =)

Il faut que j'arrête la moquette.

Merci Dubcek