SSブログ

CSVファイルの指定した列を抽出するバッチファイル [コンピュータ]

CSVファイルの指定した列を抽出するバッチファイル
2023/12/06

WindowsのバッチファイルでCSVファイルの特定列のみ取り出して使いたくなってしまった場合。

今回の作成例ではCSVファイルの1列目、3列目、4列目が必要なため、抜き出して別ファイルに保存する。
バッチ実行前のイメージ「●,2,3,4,●,●,●,●,9,●」
バッチ実行後のイメージ「●,3,4」

CSVファイル内に空データ列があるとそこを飛ばして処理してしまうので、事前に空データ部分に適当なデータ●とかを入れておく。(2023/12/05のメモ参照)

元のcsvファイル名を、input.csv
処理後のcsvファイル名を、output.csv

バッチファイルでの処理内容としては
1、CSVファイルから1行取り出して
2、1列目、3列目、4列目のデータを別ファイルに書き込む
3、最後の行になるまで繰り返す

バッチファイル
----------
@echo off
setlocal enabledelayedexpansion

type nul>output.csv

for %%f in (input.csv) do (
for /f "tokens=1,3,4 delims=," %%a in (%%f) do echo %%a,%%b,%%c>>output.csv
)

pause
----------

違う列を取り出したい場合は、tokens=1,3,4 と echo %%a,%%b,%%c 辺りをいじくって
tokens=1,3,4,7,8,9 とか echo %%a,%%b,%%c,%%d,%%e,%%f とかにしてみる。


あとがき
素直にエクセルとか専用ソフトとかで処理すればいいかもだが何らかの理由でバッチファイルしか使えない場合のためにメモを残す。
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。