web-dev-qa-db-fra.com

Quel est l'équivalent Windows de la commande Unix cat? 

Je veux faire exactement ce que fait unix "cat", mais sur mon PC. Existe-t-il une simple commande équivalente pour la ligne de commande Windows?

Plus précisément, je veux créer un fichier à partir de tous les fichiers d'un type donné dans un dossier

Sous Unix:

cat *fna >all_fna_files.fna

(qui réunit tous les fichiers texte ".fna" en un gros fichier texte)

168
Kirt

type

Cela fonctionne avec command.com, cmd et PowerShell (bien que dans ce dernier, c'est un alias pour Get-Content, donc cat, vous pouvez donc utiliser l'un ou l'autre). De la article Wikipedia (souligné par moi):

En informatique, le type est une commande dans divers VMS. Les interpréteurs de ligne de commande AmigaDOS, CP/M, DOS, OS/2 et Microsoft Windows (shells) tels que COMMAND.COM, cmd.exe, 4DOS/4NT et Windows PowerShell. Il est utilisé pour afficher le contenu des fichiers spécifiés. C'est analogue à la commande Unix cat.

C:\>echo hi > a.txt
C:\>echo bye > b.txt
C:\>type a.txt b.txt > c.txt
C:\>type c.txt
hi
bye
211
ckhan

À partir de la commande Shell:

copy a.txt + b.txt + c.txt output.txt

(Mais cela suit la commande shell utilise control-Z comme marqueur de fin de fichier, donc non approprié dans certains cas).

Dans PowerShell:

get-content a.txt,b.txt,c.txt | out-file output.txt

et vous pouvez contrôler (en utilisant le paramètre -Encoding) le codage du fichier (qui permet le transcodage en utilisant un codage différent pour la lecture et l’écriture).

21
Richard

Je viens d'utiliser la commande cat sous DOS (Windows 7 Pro) de la manière suivante et de fusionner avec succès 3 fichiers (log1.txt, log2.txt, log3.txt) dans un seul fichier:

cat log*.txt >> myBigLogFile.txt 

Remarque: cat log*.txt > myBigLogFile2.txt fournit également le même résultat, mais il remplacera le fichier précédent.

1
Heidi