Windows10 バッチファイルの作り方 for文

本日は、バッチファイルの作り方シリーズとして、「for」文を紹介します。
「for」文は、もっともわかりにくいと感じます。
すべて覚えることは、難しいので、実際に使う際に、この記事を見て、やりたいことがぱっとできるような内容にしたいと思います。

For文の構文

For文は、構文を確認しましょう。

FOR ①オプション  ②%%変数 IN ( ③セット) DO ( ④ コマンド )

・オプションは、対象範囲を決める。ファイルやディレクトリ、サブディレクトリなどの範囲を決める。/d /r /l /f

・変数は、任意の文字です。コマンドでは%ひとつ、バッチ内ではふたつです。

・セットは、コマンドの対象となるモノ(ファイルやディレクトリ等)です。

for文のオプションの説明

 オプションは、4つあります。
オプションを付けることで対象範囲を示します。
/D オプション 対象 カレントディレクトリ内のフォルダ名
/Rオプション  対象 指定したディレクトリ、サブディレクトリ内のファイル名
/Lオプション  対象 ループする値を指定
/Fオプション  対象 指定したテキストファイル内の文字列が対象

for文の実例1 /Dオプション

まずは、バッチファイルではなく、コマンドプロンプトから実行してみましょう。

Windows10 コマンドプロンプト起動方法と使い方

dirコマンドの実行と結果です。フォルダがざっと表示されています。

dirコマンド結果

この中からforコマンドで、Dから始まるフォルダを表示します。
下記を入力します。
「for /D %d in (d*) do echo %d」

Desktop,Document,Downloads,DropboxっとDからはじまる文字が表示できます。

for文の実例2 /Rオプション

次は、Rオプションです。
例えば、Cドライブ内に”.log”という名前のログファイルがどれくらいあるかfor/Rオプションで調べてみます。

「for /r %a in (*.log) do echo %a」

for文の実例3 /L オプション

次にLオプションをコマンドプロンプトから実行します。
例えば、ファイルを10個作りる場合等に使えます。
コマンドです。
「for /l %a in (1,1,10) do echo “” > test%a.txt」

for文の実例4 /F オプション

最後に/fオプションです。/fオプションは、ファイルの中身が対象になるため、まずはテキストファイルを用意します。
社員一覧表みたいなテキストファイルです。
カンマ区切りで、左から「No」、「部署」、「名前」の3列10行のテキストファイルです。

for /fオプションは、こういったテキストファイルの何列目を特定して出力するときに使います。
例えば、Noと名前だけを取り出します。

for /f ” tokens=1,3 delims=,” %i in (社員.csv) do echo %i %j

上記だとわかりにくいですが、テキストファイルに吐き出すと、ちゃんと2列だけが取得されていることがわかります。

For文を使ったバッチファイルのサンプル

for文を使ったバッチファイルのサンプルです。この例では、指定されたディレクトリ内のすべてのファイルの名前を列挙しています。

@echo off
setlocal

set target_dir=C:\Users\UserName\Documents\Example

for %%f in (%target_dir%\*) do (
  echo %%~nxf
)

endlocal

setコマンドを使用して、ディレクトリのパスを指定しています。
forコマンドは、ディレクトリ内のすべてのファイルに対して繰り返し処理を行い、
echoコマンドを使用してファイル名を出力しています。

%%~nxfは、forループで処理されている現在のファイルの名前を表します。
%%~nはファイル名のみを、%%~xは拡張子を表します。

まとめ

for文について紹介しました。
今回は、すべてコマンドプロンプトから行いましたが、バッチファイルで記載する際は、変数の前に%を2つつけることを忘れずに。
また、forコマンドには状況に応じて、たくさんの使い方がありますので、調べてみましょう。
今回は、全体像の把握とすぐに使えるようにと思い、記事にさせていただきました。

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