2012-10-05 11 views

cevap

7

Sen 1 satır dışında tüm çıkışa MORE +1 kullanabilirsiniz.

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

Her dosyada gerektiği gibi atlamak için satır sayısını istediğiniz gibi ayarlayabilirsiniz. girdi

@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 

olarak yeni oluşturulan çıktı csv kullanmayın değiştirilmiş Ya/F yeni oluşturulan işlenirken önlemek için İÇİN şunu kullanabilirsiniz: Edit:

Geçerli klasördeki tüm csv dosyalarını birleştirmek için dosya:

Açıktır ki, bu yalnızca tüm csv dosyalarının aynı biçimi paylaşması durumunda etkilidir.

DÜZENLEME 2015/07/30:bazı sınırlamalar vardır:

  • Tab karakterleri Her CSV kaynak dosyası olması gerekir
  • alanlarda bir dizi çevrilecektir az 64k satırlar
+0

İlk örnek neden 64k satırlarla sınırlı? –

3

Geçerli klasördeki tüm CSV dosyalarını birleştirmek için dbenham'ın yöntemiyle ilgili sorunlar yaşıyordum. Zaman zaman ortaya çıkan CSV'yi seçer ve sete dahil eder. Bu sorunu önlemek için değiştirdim.

@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" 
    ) 
) 
) 
İlgili konular