※この記事は「2023年4月10日」に更新しました。
バッチファイルでよく使われるので、解説します。
- 基本情報技術者資格所有者(ソフト開発の国家資格)
- WordPress歴、10年以上
- パソコン販売歴、約5年
目次
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
次に、作成されたテキストファイルに日付を挿入するバッチファイルを作成します。
@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
結果は、以下の通りです。
forコマンドは、バッチファイルで使うと強力
記述も複雑なので、あらかじめバッチファイルとして保存しておいて、必要な部分だけ変更するような使い方がおすすめです。
特に他の高級言語(C言語など)を学習した方にとって、コマンドプロンプトの for はクセがあるので、直接打ち込むよりはるかに楽だと思います。
バッチファイルの作成方法など、詳しく知りたい方は、以下の記事をご参照下さい。
最後に
forコマンドは、バッチファイルで使う機会が多く、繰り返し処理をするには欠かせないものです。
少しクセがありますが、実際、簡単なサンプルをコーディングしてみて、動作確認してみると理解しやすいかと思います。
ちなみにバッチファイルではなく、そのまま実行する場合、変数の % は一つになります。