【Windowsバッチファイル(.bat)】ループ・繰り返し処理[For文]の使い方


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

Windows

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

Windowsのバッチファイルにおける「For」文の使い方を解説します。

指定した回数分ループする

指定した回数分ループしつつ処理を行う方法を説明します。

書式

for /l %%変数 in (開始値, 増加値, 終了値) do (
	実行する処理1
	実行する処理2
	実行する処理3
)

記述例

開始値「5」、増加値「1」、終了値「9」を条件としてループする例です。

@echo off

for /l %%i in (5, 1, 9) do (

	echo %%i

)

pause

上記の実行結果です。

5
6
7
8
9
続行するには何かキーを押してください . . .

コマンドの実行結果を元にループする

コマンドの実行結果を元にして、ループしつつ処理を行う方法を説明します。

書式

for /f %%変数 in ('コマンド') do (
	実行する処理1
	実行する処理2
	実行する処理3
)

記述例①

dirコマンド(dir /b)の実行結果を元にループしつつ、結果を1行ずつ表示する例です。

@echo off

cd C:\workspace\Data

for /f %%i in ('dir /b') do (


	rem コマンドの実行結果を1行ずつ表示する
	echo %%i

)

pause

上記の実行結果です。

file1.log
file1.txt
file2.log
file2.txt
file3.log
file3.txt
続行するには何かキーを押してください . . .

記述例②

「使用例①」ですが、普通に「dir /b」を実行した場合と違いが分かりにくいので、ファイル名と合わせて、ループ回数も表示するようにしてみました。

@echo off

cd C:\workspace\Data

set count=0

setlocal enabledelayedexpansion

for /f %%i in ('dir /b') do (

	set /a count=count+1

	rem コマンドの実行結果を1行ずつ表示する
	echo ループ回数[!count!]%%i

)

pause

上記の実行結果です。
コマンドの実行結果が1行ずつ処理されていることが分かります。

ループ回数[1]file1.log
ループ回数[2]file1.txt
ループ回数[3]file2.log
ループ回数[4]file2.txt
ループ回数[5]file3.log
ループ回数[6]file3.txt
続行するには何かキーを押してください . . .

コメント

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