2012-10-05 8 views
6

Ho più file CSV con la stessa intestazione e sto cercando di combinarli insieme in Batch e mantenere solo una singola intestazione. Qualche idea?Combinazione batch CSV Rimuovi intestazione

+0

C'è un particolare file che si desidera mantenere l'intestazione (cioè: solo il primo file csv, o solo l'ultimo?) O tutti i file hanno un'intestazione identica? –

risposta

7

È possibile utilizzare MORE +1 per stampare tutto tranne la prima riga.

>new.csv (
    type file1.csv 
    more +1 file2.csv 
    more +1 file3.csv 
    REM etc. 
) 

Ovviamente è possibile regolare il numero di righe da saltare in ogni file in base alle esigenze.

di combinare tutti i file CSV nella cartella corrente: Edit: modificato non utilizzare per csv uscita appena creato come input

@echo off 
setlocal 
set first=1 
>new.csv.tmp (
    for %%F in (*.csv) do (
    if defined first (
     type "%%F" 
     set "first=" 
    ) else more +1 "%%F" 
) 
) 
move /y new.csv.tmp new.csv >nul 

Oppure si potrebbe usare FOR/F per evitare l'elaborazione di nuova creazione file:

@echo off 
setlocal 
set first=1 
>new.csv (
    for /f "eol=: delims=" %%F in ('dir /b /a-d *.csv') do (
    if defined first (
     type "%%F" 
     set "first=" 
    ) else more +1 "%%F" 
) 
) 

Ovviamente questo è efficace solo se tutti i file csv condividono lo stesso formato.

EDIT 2015/07/30:Ci sono alcune limitazioni:

  • caratteri di tabulazione verrà convertito in una stringa di spazi
  • Ogni file sorgente CSV deve avere meno di 64k linee
+0

Perché il primo esempio è limitato a 64k linee? –

3

Ho riscontrato problemi con il metodo di dbenham per la combinazione di tutti i file CSV nella cartella corrente. Occasionalmente raccoglieva il CSV risultante e lo includeva nel set. L'ho modificato per evitare questo problema.

@echo off 
setlocal 
set first=1 
set fileName="combinedFiles.csv" 
>%fileName% (
    for %%F in (*.csv) do (
    if not "%%F"==%fileName% (
     if defined first (
     type "%%F" 
     set "first=" 
    ) else more +1 "%%F" 
    ) 
) 
) 
Problemi correlati