Question Un cmd de ligne de commande ou de lot pour concaténer plusieurs fichiers


J'ai 50 fichiers texte dans un répertoire.

Existe-t-il une méthode de ligne de commande Windows pour concaténer ces fichiers dans un seul fichier?

j'utilise Windows Vista.

Je ne veux pas taper le nom de tous les fichiers.


90
2018-02-22 01:59


origine


quelle version de DOS utilisez-vous? :) allez, donnez-nous plus d'informations, quels types de fichiers ... vous cherchez évidemment un moyen de fusionner ces fichiers.
Le post est édité - Mirage
DOS dans les systèmes d'exploitation Windows NT (NT, 2000, et tout depuis XP) n'est vraiment pas DOS, c'est un shell de commande appelé "cmd.exe". balises DOS supprimées pour refléter cela. - quack quixote
désolé pour ça, je ne le savais pas vraiment. Je pensais comme DOS - Mirage
Heureusement, les derniers vestiges de DOS sont morts avec Windows ME. :) mais pas de soucis - la plupart des gens appellent toujours la ligne de commande Windows "DOS", donc ce n'est pas faux, juste inexacte. Comme le vrai DOS est toujours utilisé, je nettoie la balise DOS pour ne plus être que de vraies questions DOS. - quack quixote


Réponses:


Je ne veux pas taper le nom de tous   des dossiers.

C'est facile à éviter. Ouvrez une invite de commande dans ce dossier et tapez la commande suivante:

copy /b *.txt newfile.txt

presse Entrer.

Maintenant, vous aurez tous les fichiers texte dans ce dossier classés par date ascendante fusionnés dans un seul fichier appelé newfile.txt.

Mon but ultime est de stocker le   contenu de chaque fichier texte dans une   colonne d'une feuille Excel.

Voici un tutoriel qui peut vous aider à atteindre votre "but ultime":

Fusionner tous les fichiers CSV ou TXT dans un dossier dans une feuille de calcul


117
2018-02-22 02:27



Est-il possible d'insérer un nouveau caractère après chaque fichier - Mirage
pas avec cette méthode. - quack quixote
quelles sont les autres options? Mon but ultime est de stocker le contenu de chaque fichier texte dans une colonne séparée de la feuille Excel. Des idées - Mirage
@Mirage - mis à jour ma réponse en fonction de votre commentaire.
Mais le problème est comment puis-je ajouter le caractère de fin à chaque fichier texte. Actuellement, certains fichiers texte sont dans le même paragraphe dans le fichier fusionné, donc Excel l'a mis dans une colonne. OU si je peux d'abord ajouter un caractère de fin à tous les fichiers, puis effectuer une opération de fusion - Mirage


Pour ajouter une nouvelle ligne à la fin de chaque fichier concaténé, utilisez type au lieu de copy, comme suit:

type *.txt > newfile.txt

35
2018-04-11 08:55



AVERTISSEMENT: lorsque vous utilisez tapez * .txt> newfile.txt, le texte est dupliqué. - Malganis
Retirer .txt de newfile et bam! Voilà. - fa wildchild
Ceci est une réponse géniale pour concaténer des fichiers journaux ou d'autres choses que vous analyserez plus tard. Spécifiquement le fait que vous pouvez faire type x.log.* > merged.log sans fichier de commandes. Les nouvelles lignes sont assez faciles à gérer. - Daniel Chapman
Sensationnel, type a parcouru un long chemin depuis DOS 3.3. Je ne savais pas que vous pouviez utiliser des masques de fichiers. Quand est-ce arrivé? - Sun


En supposant que vous parlez d'ajouter des fichiers texte, le copy commande peut être utilisée pour les ajouter ensemble:

copy file1+file2+file3 targetfile

Si vous avez beaucoup de fichiers, vous pouvez créer une boucle en ajoutant un fichier à la fois.

Pour les fichiers binaires, ajoutez le '/b'option:

copy /b file1+file2+file3 targetfile

Cela suppose que vous savez que les fichiers binaires avec lesquels vous travaillez peuvent être ajoutés dos à dos; sinon, vous obtiendrez un tas de données inutiles.


30
2018-02-22 02:08



Ceci est très utile si vous devez concaténer des fichiers dans un ordre particulier. - kapex


Exécutez la commande suivante dans l'invite de commande:

for %f in (*.txt) do type "%f" >> output.txt

8
2017-08-10 08:06



Cela ne fonctionne pas comme prévu, tout le texte est dupliqué dans output.txt - DavidPostill♦
Indice * .txt correspond à output.txt - DavidPostill♦
@ DavidPostill, j'ai édité la réponse en fonction de vos préoccupations. - Saran


Le fichier .bat suivant ajoutera tous les fichiers * .for, sauf celui nommé XIT.for, à un fichier vierge nommé MASTER.for

type NUL > MASTER.for
FOR %%G IN (*.for) DO IF NOT "%%G" == "XIT.for" copy /A MASTER.for+"%%G" && echo. >> MASTER.for

:)


3
2018-05-12 11:52



Une légère torsion sur ce qui précède: si l'on veut s'assurer que les fichiers sont concaténés alphabétiquement, on devrait utiliser: FOR / F %% G IN ('dir / b / o * .for') DO NOT NOT "%% G" == "XIT.for" copie / A MASTER.for + "%% G" && écho. >> MASTER.pour - Guido Domenici
J'aime ça. Un autre ajustement dont j'ai besoin aujourd'hui est d'imprimer un en-tête de fichier dans le fichier pour séparer les fichiers d'entrée. for %f in (*.txt) do ((echo. & echo == %f == & echo. & type %f ) >> *.txt.dat ) - Curtis Price
Je suis conscient que l'utilisation d'un shell bash aurait probablement plus de sens! - Curtis Price