プロジェクトマネジメント入門

ITサービスマネジメント、プロジェクトマネジメント等。主にIT系の話題について。

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を使うほどでは…」という業務も多いでしょうしね。


「都度、システム部門に依頼をかけるのはハードルが高い」なんていう場合、プログラムをかじったレベルで良いので、各部門に一人いると違うよな~、と思っているのですが、いかがでしょうか。


なので、業務のコアスキル以外にプログラミングスキルを学ぶというのも、差別化戦略という意味ではアリかもしれません。