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ファイルの処理だけでなく、様々なファイル操作や自動化が可能になります。ぜひ、この機会にバッチファイルの学習を進めてみてください。