J'essaie de prendre un dossier contenant plusieurs fichiers .csv et de combiner tous ces fichiers et les informations qu'ils contiennent dans un seul fichier à l'aide de MS DOS. Aucune suggestion?
copy *.csv new.csv
Pas besoin de/b car csv n'est pas un type de fichier binaire.
copy /b file1 + file2 + file3 newfile
Chaque fichier source doit être ajouté à la commande de copie avec un +
, et le dernier nom de fichier répertorié correspond à l'emplacement de copie des données concaténées.
Si cela fait partie d'un script de traitement par lots (fichier .bat
) et que vous avez une longue liste de fichiers, vous pouvez utiliser un ^
sur plusieurs lignes et un indicateur facultatif /Y
pour supprimer l'invite à confirmer la suppression d'un fichier de destination existant.
REM Concatenate several files to one
COPY /Y ^
this_is_file_1.csv + ^
this_is_file_2.csv + ^
this_is_file_3.csv + ^
this_is_file_4.csv + ^
this_is_file_5.csv + ^
this_is_file_6.csv + ^
this_is_file_7.csv + ^
this_is_file_8.csv + ^
this_is_file_9.csv ^
output_file.csv
C'est plus ordonné que d'exécuter la commande sur une seule ligne.
for %f in (filenamewildcard0, filenamewildcard1, ...) do echo %f >> newtargetfilename_with_path
Même idée que Mike T; pourrait mieux fonctionner sous la limite de 127 caractères de la ligne de commande de MessyDog
les noms de fichiers doivent trier correctement pour combiner correctement!
file1.bin file2.bin ... file10.bin
ne fonctionnera pas correctement
file01.bin file02.bin ... file10.bin
va fonctionne correctement
c:>for %i in (file*.bin) do type %i >> onebinary.bin
Fonctionne pour les fichiers ascii ou binaires.
type data1.csv > combined.csv
type data2.csv >> combined.csv
type data3.csv >> combined.csv
type data4.csv >> combined.csv
etc.
Supposons que vous utilisez des fichiers sans en-tête et que tous les fichiers ont les mêmes colonnes.