Örnek dosyaları, her dosyanın üstbilgileriyle tek bir dosyada birleştirmek için kodu yazdım.Birden çok .csv dosyasını toplu iş ile birleştirirken üstbilgiyi kaldır
Girdi dosyaları:
File1:
[ Row : Header ],,,,,,,,, ContractNum,ProgramNum,CustomerNum,TierNum,StartDate,EndDate,DateCreated,CreatedBy,DateUpdated,UpdatedBy 00032116,21238,60304PRMI,3,2014-05-02,2017-09-30,Administrator,Administrator,2016-02-29 10:46:14,2016-02-29 10:46:14 00032116,21238,81790PRMI,3,2014-05-02,2017-09-30,Administrator,Administrator,2016-02-29 10:46:14,2016-02-29 10:46:14
Dosya 2:
.210[ Row : Header ],,,,,,,,, ContractNum,ProgramNum,CustomerNum,TierNum,StartDate,EndDate,DateCreated,CreatedBy,DateUpdated,UpdatedBy 00024067,15562,9942PRMI,1,2014-09-16,2016-12-31,gintgUser,gintgUser,2016-02-21 05:59:43,2016-02-21 05:59:43
Beklenen Çıktı:
[ Row : Header ],,,,,,,,, ContractNum,ProgramNum,CustomerNum,TierNum,StartDate,EndDate,DateCreated,CreatedBy,DateUpdated,UpdatedBy 00024067,15562,9942PRMI,1,2014-09-16,2016-12-31,gintgUser,gintgUser,2016-02-21 05:59:43,2016-02-21 05:59:43 00032116,21238,60304PRMI,3,2014-05-02,2017-09-30,Administrator,Administrator,2016-02-29 10:46:14,2016-02-29 10:46:14 00032116,21238,81790PRMI,3,2014-05-02,2017-09-30,Administrator,Administrator,2016-02-29 10:46:14,2016-02-29 10:46:14
Gerçek Çıktı:
[ Row : Header ],,,,,,,,, ContractNum,ProgramNum,CustomerNum,TierNum,StartDate,EndDate,DateCreated,CreatedBy,DateUpdated,UpdatedBy 00024067,15562,9942PRMI,1,2014-09-16,2016-12-31,gintgUser,gintgUser,2016-02-21 05:59:43,2016-02-21 05:59:43 00032116,21238,60304PRMI,3,2014-05-02,2017-09-30,Administrator,Administrator,2016-02-29 10:46:14,2016-02-29 10:46:14 [ Row : Header ],,,,,,,,, ContractNum,ProgramNum,CustomerNum,TierNum,StartDate,EndDate,DateCreated,CreatedBy,DateUpdated,UpdatedBy 00032116,21238,81790PRMI,3,2014-05-02,2017-09-30,Administrator,Administrator,2016-02-29 10:46:14,2016-02-29 10:46:14
Bu işlem için kullanılan kod aşağıda bulabilirsiniz:
@echo off
break>Combined.csv
cls
setlocal enabledelayedexpansion
if exist C:\Users\kartikeya.avasthi\Desktop\Batch_Scripts\Combined.csv del C:\Users\kartikeya.avasthi\Desktop\Batch_Scripts\Combined.csv
dir /a-d /b C:\Users\kartikeya.avasthi\Desktop\Batch_Scripts\ContractEligibility_*.csv>C:\Users\kartikeya.avasthi\Desktop\Batch_Scripts\dirfiles.txt
cd C:\Users\kartikeya.avasthi\Desktop\Batch_Scripts\
for /f "tokens=*" %%A in (C:\Users\kartikeya.avasthi\Desktop\Batch_Scripts\dirfiles.txt) do (
set /p header=<%%A
if "!header!" neq "" (
(echo(!header!)>Combined.csv
goto :break_for
)
)
:break_for
for /f "tokens=*" %%A in (C:\Users\kartikeya.avasthi\Desktop\Batch_Scripts\dirfiles.txt) do (
more +1 %%A>>Combined.csv
)
del dirfiles.txt
}
Birisi lütfen bu sorunu çözmeme yardımcı olabilir. Ben betik toplu işlemek ve bu sorunu ayıklamak için bir neophyte duyuyorum.
varsayarak CSV dosyaları listesini içeren bir ara dosya için gerek okuyabilir ve başlıklarının kurtulmak için onunskip
seçeneğini kullanarak, standart
for
döngü ve bir iç içe
for /F
döngü bunları birleştirmek (Orada
Lütfen kod bölümlerini düzgün biçimlendirmeyi öğrenin; editir bölgesinde '{}' düğmesini kullanın ... – aschipfl
http://stackoverflow.com/a/19592600/3664960 Çoğaltması – Magoo
Aynı CSV dosyalarının biçimlendirmesini geliştirdim - bkz. [düzenle] (http://stackoverflow.com/q/36325776/5047996/3); Ben bir kopya-yapıştırma hatası olarak kabul ettim ve örnek çıktı dosyalarında bu satır oluşmadı çünkü ben örnek dosya 2, kesilmiş bir satırı kaldırdığımı unutmayın; Yanlış bir şey yapsaydım, bir kez daha yazıyı düzenlemekte özgürsün ... – aschipfl