Categories: Windows

バッチファイルでCSVファイルを読み込む方法

CSVファイル(カンマ区切り値ファイル)は、表計算ソフトなどでデータの保存によく使われます。Windowsのバッチファイルを使って、このCSVファイルを読み込む方法を見ていきましょう。今回は、3行3列のシンプルなCSVファイルを例に解説します。

3行3列のCSVファイルを読み込むバッチファイルの例

@echo off
set csv_file=test.csv
for /f "tokens=1-3 delims=," %%i in (%csv_file%) do (
    echo %%i, %%j, %%k
)
pause

バッチファイルの解説

  • @echo off:コマンドプロンプトへのコマンドのエコーバックをオフにします。これにより、スクリプトの実行中にコマンド自体が表示されなくなります。
  • set csv_file=test.csv:csv_file という変数に test.csv という値を代入します。これは、処理対象のCSVファイルの名前を指定しています。
  • for /f “tokens=1-3 delims=,” %%i in (%csv_file%) do (…)
    • for /f:ファイルの内容を1行ずつ読み込み、指定された処理を行います。
    • “tokens=1-3 delims=,”
      • tokens=1-3:1列目から3列目までを処理対象とします。
      • delims=,:区切り文字はカンマを使用します。
    • %%i in (%csv_file%):各行のトークンを %%i、%%j、%%k という変数に順に代入します。
    • do (…): 各行に対して以下の処理を実行します。
  • echo %%i, %%j, %%k:各行の3つのトークンをコンマ区切りで表示します。
  • pause:スクリプトの実行を一時停止し、「続行するには何かキーを押してください」というメッセージを表示します。これにより、実行結果を確認することができます。

注意点

  • このスクリプトは、ヘッダー行(列名などが書かれた最初の行)をデータとして扱います。ヘッダー行をスキップしたい場合は、別途処理を追加する必要があります。

実行結果の例

以下のようなCSVファイルを読み込んでみます。

apple,red,fruit
banana,yellow,fruit
carrot,orange,vegetable

以下のような結果がコンソールに得られます。

4行4列の場合の例

CSVファイルの列数が増えた場合は、tokens=の値と、変数の数を調整します。

@echo off
set csv_file=test.csv
for /f "tokens=1-4 delims=," %%i in (%csv_file%) do (
    echo %%i, %%j, %%k, %%l
)
pause

まとめ

このバッチファイルは、シンプルなCSVファイルを読み込むための基本的な例です。実際のCSVファイルはもっと複雑な構造をしている場合もありますが、この例をベースに変数の使い方を工夫することで、様々なCSVファイルに対応できます。

バッチファイルを使いこなせば、CSVファイルの処理だけでなく、様々なファイル操作や自動化が可能になります。ぜひ、この機会にバッチファイルの学習を進めてみてください。

Haruoka