あるフォルダ配下に、複数のフォルダが存在し、
そのフォルダの中に同じファイル名のCSVが複数存在するとする。
それらのCSVファイルを最初のファイルのヘッダ以外は無視して
結合を行うスクリプトを作った。
【18/03/27追記】 Zuishin様にもっとスマートな方法を教えていただきました。
コメント欄を参照ください。ありがとうございます。
function margeCsv($inputFolder, $outputFolder, $fileName) {
$headerOutputflg = 1
Get-ChildItem $inputFolder -include $fileName -Recurse | ForEach-Object {
$_.FullName
$headerflg = 1
Get-Content $_.FullName | ForEach-Object {
$row = $_
if ($headerflg -ne 1 -or $headerOutputflg -eq 1){
$row | Out-File ($outputFolder + "\" + $fileName) -Append
}
$headerflg = 0
}
$headerOutputflg = 0
}
}
margeCsv([入力フォルダパス])([出力フォルダパス])([ファイル名])