CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Script batch de concaténation de fichier texte

MaadKilleer
MaadKilleer
Niveau 4
11 juin 2015 à 22:25:10

Bonjour à tous,
voilà j'ai écris un script batch pour concaténer mes fichiers contenus dans un répertoire.
J'illustre : j'ai mon répertoire "txt" contenant les fichiers 1.txt 2.txt et 3.txt contenant respectivement AAAA, BBBB et CCCC, quand je lance mon script j'obtiens donc mon fichier de concatenation "concat.txt" qui contient donc :
AAAA
BBBB
CCCC.

C'est ici qu'arrive le problème, je rajoute un fichier 4.txt dans MonRep contenant DDDD, je relance mon script et j'obtiens maintenant :
AAAA
BBBB
CCCC
AAAA
BBBB
CCCC
DDDD.

J'aimerais trouver une solution a mettre dans mon script pour pour supprimé les doublons ...
Si quelqu'un a donc la solution je suis preneur... Merci d'avance :)

MaadKilleer
MaadKilleer
Niveau 4
11 juin 2015 à 22:26:55

Pardon j'ai oublié de vous mettre mon script pour que vous puissiez voir à quoi il ressemble, voila :
for /r "C:\txt\" %%i in (*.txt) do for /f "delims=" %%j in ('type "%%i"') do echo %%j>> concat.txt

rangerprice
rangerprice
Niveau 10
12 juin 2015 à 00:47:50

Pour les doublons un système de variable serait bien, par exemple, pour chaque fichier déjà concaténé tu crées une variable portant le nom du fichier qui vient d'être concaténé.

Puis lorsque tu concat un nouveau fichier, tu vérifie si une variable qui correspond à son nom éxiste, si elle éxiste ça voudra dire que le fichier a déjà été concaténé, si elle existe pas tu concat le fichier, et crée une variable correspondant à celui ci.

Message édité le 12 juin 2015 à 00:48:33 par rangerprice
MaadKilleer
MaadKilleer
Niveau 4
12 juin 2015 à 08:19:16

Merci rangerprice mais je comprends pas trop comment procéder avec ta solution ...

MaadKilleer
MaadKilleer
Niveau 4
12 juin 2015 à 09:05:52

Sinon j'avais pensé est ce qu'il est possible d'insérer dans mon script une option qui supprimerais mon fichier de concaténation concat.txt, ça éviterais donc les doublons. Si oui comment ?

dark_drow
dark_drow
Niveau 15
12 juin 2015 à 11:22:38
do echo %%j> concat.txt

je crois que le ">>" ça veut dire ajouter à la fin du fichier, alors que ">" c'est replacer par

MaadKilleer
MaadKilleer
Niveau 4
12 juin 2015 à 11:55:01

Merci dark_drow mais avec cette commande ">", il ne me met plus que le dernier fichier texte créé... :/

MaadKilleer
MaadKilleer
Niveau 4
12 juin 2015 à 13:12:47

Mon script ressemble maintenant à ça :
for /r "C:\txt\" %%i in (*.txt) do for /f "delims=" %%j in ('type "%%i"') do echo %%j>> concat.log
pause
mais toujours même problème Hors-Charte :/

Darkandgel
Darkandgel
Niveau 10
12 juin 2015 à 13:55:05

Essaye ça :

for /r "C:\txt\" %%i in (*.txt) do for /f "delims=" %%j in ('type "%%i"') do echo %%j> concat.log
pause

MaadKilleer
MaadKilleer
Niveau 4
15 juin 2015 à 09:16:16

Merci Darkandgel mais avec ce script j'ai seulement le dernier fichier texte créé dans mon fichier concat.log

MaadKilleer
MaadKilleer
Niveau 4
15 juin 2015 à 09:49:19

J'ai trouvé la solution, je vous la présente puis je met ensuite le Topic Résolu.
Mon script se présente donc comme ceci :
'''set rep=C:\txt\
set concat=concat.log

if exist %concat% del %concat%
for /r %rep% %%i in (*.txt) do for /f "delims=" %%j in ('type "%%i"') do echo %%j>> concat.log
pause'''

Donc mon script regarde si mon fichier concat.log existe déjà et s'il existe il supprime avant de le créer à nouveau.

LESLESLES
LESLESLES
Niveau 6
06 janvier 2021 à 21:16:13

Bonjour,

Merci beaucoup MaadKilleer, j'ai honteusement pompé ton code, c'est exactement ce qu'il me fallait.
Étant un énorme noob en programmation, c'était parfait !

J'aimerais juste rajouter le nom de fichier avant les données :
F1.txt contient :
123
456

F2.txt contient
ABC
DEF

Résultat espéré :
F1.txt
123
456
F2.txt
ABC
DEF

J'ai modifié le script comme suit :

SET SOURCE=C:\TEST\SOURCE\
SET DEST=C:\TEST\concat.txt

if exist %DEST% del %DEST%
for /r %SOURCE% %%i in (*.txt) do for /f "delims=" %%j in ('type "%%i"') do echo %%i %%j>>%DEST%

Mais le résultat n'est pas celui que j'attendais :hum: :

C:\TEST\SOURCE\A.txt 123
C:\TEST\SOURCE\A.txt 456
C:\TEST\SOURCE\B.txt ABC
C:\TEST\SOURCE\B.txt DEF

Auriez-vous une idée pour m'aidez SVP

Merci

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment