for(繰り返し処理)の使い方【バッチファイル】

※この記事は「2023年4月10日」に更新しました。

for(繰り返し処理)の使い方を紹介します。

バッチファイルでよく使われるので、解説します。

タカフミ
記事を書いている管理人の経歴は、以下の通りです。
  • 基本情報技術者資格所有者(ソフト開発の国家資格)
  • WordPress歴、10年以上
  • パソコン販売歴、約5年

forコマンドの使い方

forコマンドの使い方
タカフミ
forコマンドは、繰り返し処理を行うためのものです。

C言語などの高級言語でもおなじみですが、バッチファイルで使う場合、少々むずかしいです。

基本形

forコマンドの基本形は、以下の通りです。

for [オプション] %%変数 in 対象 do 処理

指定した回数繰り返す

指定した回数繰り返す使い方を紹介します。

for /l %%変数 in (開始,増分,終了) do 処理

/lオプションを使うことで (開始,増分,終了) という形式を指定することができます。

ここで使う変数は一時的なもので forコマンドだけで有効なものです。

変数名は a~z のいずれか1文字で表します。

例として、1~5 までの数字を順番に出力していくバッチファイルを作成してみます。

@echo off
for /l %%a in (1,1,5) do echo 変数は %%a
pause > nul

結果は、以下の通りです。

指定した回数繰り返す

ファイルを対象として繰り返す

ファイルを対象として繰り返す使い方を紹介します。

for %%変数 in 対象 do 処理

例として、カレントディレクトリにある、全てのテキストファイルの先頭に日付を挿入する、バッチファイルを作成してみます。

まずは、適当にテキストファイルを用意します。

せっかくなんで、これもバッチファイルで用意しましょう。

@echo off
type nul > wordpress.txt
type nul > movable-type.txt
type nul > wix.txt
type nul > jimdo.txt
空のテキストファイルを作成する方法
空のテキストファイルを作成するには、type nul > ファイル名.txt を実行します。

次に、作成されたテキストファイルに日付を挿入するバッチファイルを作成します。

@echo off
for %%a in (*.txt) do (ren %%a 20200404%%a)

実行結果は、以下の通りです。

ファイルを対象として繰り返す

テキストファイル内のデータを行単位で読んで繰り返す

テキストファイル内のデータを行単位で読んで繰り返す使い方を紹介します。

京都市の行政区を表すテキストファイルです。

京都府 京都市 上京区
京都府 京都市 下京区
京都府 京都市 左京区
京都府 京都市 中京区
京都府 京都市 東山区
京都府 京都市 右京区
京都府 京都市 伏見区
京都府 京都市 北区
京都府 京都市 南区
京都府 京都市 山科区
京都府 京都市 西京区

この中で3番目の区だけを取り出すバッチファイルを作成します。

@echo off
echo -----
for /f "TOKENS=3" %%a in (data.txt) do (
echo %%a
echo -----
)
pause

結果は、以下の通りです。

テキストファイル内のデータを行単位で読んで繰り返す
区切り文字の指定について
TOKENS の後ろに delims=, とすると区切り文字を ,(コンマ)に指定できます。

forコマンドは、バッチファイルで使うと強力

タカフミ
forコマンドは、バッチファイルで使うと非常に強力です。

記述も複雑なので、あらかじめバッチファイルとして保存しておいて、必要な部分だけ変更するような使い方がおすすめです。

特に他の高級言語(C言語など)を学習した方にとって、コマンドプロンプトの for はクセがあるので、直接打ち込むよりはるかに楽だと思います。

他のコマンドと併用すれば、色々なことができます。

バッチファイルの作成方法など、詳しく知りたい方は、以下の記事をご参照下さい。

バッチファイル入門

バッチファイル作成方法【よく使うコマンドも解説】

2020年3月28日

最後に

forコマンドは、バッチファイルで使う機会が多く、繰り返し処理をするには欠かせないものです。

少しクセがありますが、実際、簡単なサンプルをコーディングしてみて、動作確認してみると理解しやすいかと思います。

ちなみにバッチファイルではなく、そのまま実行する場合、変数の % は一つになります。