【Windowsバッチファイル(.bat)】ファイルを1行ずつ読み込む


この記事はプロモーションを含みます。

Windows

ホーム > コマンドプロンプト・バッチファイル リファレンス

Windowsのバッチファイルで、テキストファイルを1行ずつ読み込む方法を解説します。

書式

テキストファイルを読み込む場合の書式です。
for文に読み込みたいテキストファイルを渡すことで、1行ずつ読み込むことが可能です。

for /f %%変数 in (読み込むファイル) do (
	実行する処理1
	実行する処理2
	実行する処理3
)

サンプルコード

テキストファイルを読み込むサンプルコードです。
例として、下記のようなファイルを読み込みます。

1行目
2行目
3行目

テキストファイルをフルパスで指定する

フルパスで指定したテキストファイルを1行ずつ読み込むサンプルです。

@echo off

for /f %%i in (C:\workspace\Data\sample.txt) do (

	rem 読み込んだ内容を表示する
	echo 読み込んだ内容:%%i

)

pause

実行するバッチファイルのカレントディレクトリに、読み込み対象ファイルが存在する場合は、ファイル名のみ指定することも出来ます。

実行結果です。

読み込んだ内容:1行目
読み込んだ内容:2行目
読み込んだ内容:3行目
続行するには何かキーを押してください . . .

ファイルのフルパスに半角スペースが含まれる場合

テキストファイルのフルパスに半角スペースを含む場合の記述例です。

1.for文のオプションに「"usebackq"」を追加する。
2.読み込むファイルをダブルクォーテーションで囲む。

@echo off

for /f "usebackq" %%i in ("C:\workspace\Data\sample 1.txt") do (

	rem 読み込んだ内容を表示する
	echo 読み込んだ内容:%%i

)

pause

実行例は変わらないので割愛します。

テキストファイルを変数で指定する

テキストファイルのパスを変数に格納して指定するサンプルです。

@echo off

rem 読み込み対象ファイル
set target_file=C:\workspace\Data\sample.txt

for /f %%i in (%target_file%) do (

	rem 読み込んだ内容を表示する
	echo 読み込んだ内容:%%i

)

pause

実行結果です。

読み込んだ内容:1行目
読み込んだ内容:2行目
読み込んだ内容:3行目
続行するには何かキーを押してください . . .

半角スペースを含む内容を読み込む

下記のように、半角スペースを含む内容を読み込む方法を説明します。

あいうえお かきくけこ さしすせそ
たちつてと なにぬねの はひふへほ

まず、普通に読み込んだ結果を見てみたいと思います。

あいうえお
たちつてと
続行するには何かキーを押してください . . .

前項で説明した方法で読み込むと、半角スペース以降が読み込めなくなってます。
半角スペース以降も読み込むには、以下のように「"delims="」を追加する必要があります。

@echo off

rem 読み込み対象ファイル
set target_file=C:\workspace\Data\sample.txt

for /f "delims=" %%i in (%target_file%) do (

	rem 読み込んだ内容を表示する
	echo %%i

)

pause

上記のサンプルを実行した結果です。
半角スペース以降も読み込むことが出来ました。

あいうえお かきくけこ さしすせそ
たちつてと なにぬねの はひふへほ
続行するには何かキーを押してください . . .

コメント

  1. hk より:

    読み込むテキストファイルのフルパスに半角スペースが入っていると駄目なようです。対策はありますか?

    • しゃーろっと より:

      下記の2箇所を修正してみて下さい。
      1.for文のオプションに「”usebackq”」を追加する。
      2.読み込むファイルをダブルクォーテーションで囲む。
      (詳細は本記事に「ファイルのフルパスに半角スペースが含まれる場合」というタイトルで追加しましたのでご覧頂ければと思います)

タイトルとURLをコピーしました