
PowerShellで
 ・複数のCSVファイルを
 ・1つのCSVファイルに纏める方法
を紹介します!

各CSVファイルに見出し行があっても、
上手いこと1つのCSVファイルに纏める方法です!
コード
ここでは例として
 ・デスクトップ配下のフォルダ「test」配下にある
 ・「対象ファイル(今回は全てCSVファイル)」を
 ・1つのCSVファイルに纏める方法
を紹介します。




# 対象フォルダ
$targetFolder = "C:\Users\user\Desktop\test"
# 出力ファイルのパス
$outputFile = "C:\Users\user\Desktop\merge.csv"
# 1ファイル目かどうかを判定するためのカウンタ変数
$fileCount = 0
$ws = New-Object -ComObject Wscript.Shell
try
{
    # 既に出力ファイルが存在したら削除
    if (Test-Path $outputFile) {
        Remove-item -Force $outputFile -ErrorAction Stop
    }
    # 指定フォルダ配下のcsvファイルのリストを取得
    $fileList = (Get-ChildItem $targetFolder -Filter *.csv -File -ErrorAction Stop).FullName
    # csvファイルの数だけ繰り返し
    foreach($file in $fileList){
        # カウンタ変数をカウントアップ
        $fileCount = $fileCount + 1
        # 1ファイル目のみ、(1行目を含め)まるっと出力
        # 1ファイル目以外は、1行目を飛ばして1行ずつ出力
        if ($fileCount -eq 1) {  
            Get-Content $file | Out-File -Encoding default $outputFile
        } else {
            Get-Content $file | Select-Object -Skip 1 | Out-File -Encoding default $outputFile -Append
        }
    }
    $ws.popup("対象ファイルを1ファイルに纏めました。`n対象ファイル数:" + $fileCount)
}
catch
{
    $ws.popup("エラー : " + $PSItem)
}実行結果
複数のCSVファイルを1つのCSVファイルに纏めることができました。
見出し行も上手いことできました。



参考①
上記のコードは以下の記事を参考にして作成しました。
●ファイルの存在確認
●ファイルの削除
参考②
上記のコードで使用した以下の詳細は、公式サイトをご確認ください。
●「Get-ChildItem」コマンドレット
●「Get-Content」コマンドレット
●「Out-File」コマンドレット
●「Select-Object」コマンドレット

 
  
  
  
  

