CSVファイルを結合するバッチファイル
ログなどのcsvファイルが日別・月別で分かれている場合、
・ファイルをマージしたい!
・でも単純にマージしただけだと、タイトル行まで差し込まれてしまうので面倒
という場合がありますよね(よね?)。
ちょっとした場合に使えるbatファイルのご紹介です。
要件
・列情報はすべてのcsvファイルで同一
・同一フォルダ内にある複数あるcsvファイルを結合して「merge.csv」を生成
・タイトル行は一行目のみ(2ファイル目以降のタイトル行はコピーしない)
コード
@echo off @rem 実行中に値を変化させるので、遅延環境変数宣言 setlocal enabledelayedexpansion set /a counter=0 @rem 行数分読み込み。ただしタイトル部分は1ファイル目のみ読み込み2ファイル目以降はスキップ。 for /f %%i in ('dir /b *.csv') do ( echo %%i if !counter!==0 ( set /p _head=<%%i echo !_head!>>merge.csv ) set /a counter=!counter!+1 for /f "tokens=* skip=1" %%b in (%%i) do ( echo %%b>>merge.csv ) ) pause
余談~バックオフィスにこそプログラミングが有効~
いわゆるバックオフィスー人事・経理・総務・情報システム管理部門(サポートデスク含む)において、ちょっとしたバッチファイル・関数・マクロが使えると、凄く重宝されます。
・反復・継続・定型化した作業が多い
・データを扱う業務が多い
など、まさにバッチやマクロ向きの業務が多いからです。
最近はRPAという選択肢が出てきていますが、「RPAを使うほどでは…」という業務も多いでしょうしね。
「都度、システム部門に依頼をかけるのはハードルが高い」なんていう場合、プログラムをかじったレベルで良いので、各部門に一人いると違うよな~、と思っているのですが、いかがでしょうか。
なので、業務のコアスキル以外にプログラミングスキルを学ぶというのも、差別化戦略という意味ではアリかもしれません。