複数のCSVファイルを結合する方法(まとめた対象は削除する)

やりたかったこと

複数に分けて出力されたCSVを一つにまとめたかった

出力ファイルはresult_{日付}.csvというファイル名で管理したい

対象のファイルは共有サーバー上にある

まとめた後のファイルはいらないので削除したい

作成したbat

@echo off
pushd %~dp0
setlocal enabledelayedexpansion

set /a counter=0

for /f %%i in ('dir /b *.csv') do (

    echo %%i
    if !counter!==0 (
        set /p _head=<%%i
        echo !_head!>>../Merged/result_%date:~0,4%%date:~5,2%%date:~8,2%.csv
    )
    set /a counter=!counter!+1

    for /f "tokens=* skip=1" %%b in (%%i) do (
        echo %%b>>../Merged/result_%date:~0,4%%date:~5,2%%date:~8,2%.csv
    )
)

del /q *.csv

pause

参考にした記事

ほぼこちらを参考にさせていただきました!

複数のcsvファイルを結合するバッチ(1個目のファイル以外は1行目を削除) - Qiita

共有ファイルサーバー上で実行したかったので参考にしました。

ネットワークコンピュータ上でバッチ処理がエラーになる - grum’s diary

.bat(バッチファイル)のforコマンド解説。 - Qiita

ファイルの削除(DEL, ERASE) | コマンドプロンプトの使い方

基本的な書き方の復習に。

【bat】Windowsのバッチファイル(*.bat)の書き方自分用まとめ - Qiita

https://www.adminweb.jp/command/file/index1.html

forループの中で値を変化させる