複数の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