for文の使用方法(for)
FORコマンド
説明 : 指定されたコマンドをファイル セットの各ファイルに対して実行
for パラメータ 変数 in 対象 do コマンド
※変数は、%%アルファベット。対象は、パラメータで変わるが、ファイル名 or ループする範囲(数値)などを記載。
パラメータ
(オプション無し) カレントディレクトリ内のファイル名が対象
/D カレントディレクトリ内のフォルダ名が対象
/R 指定したディレクトリ内及びそのサブディレクトリ内のファイル名が対象
/L ループする値を指定
/F 指定したテキストファイル内の文字列が対象
サンプルソース
カレントディレクトリ内の拡張子.txtのファイル名を取得
(入力:バッチ内記載)
for %%i in (*.txt) do (echo ファイル名:%%i) >> E:\for.txt
※バッチ内だと変数は %%i 、コマンド内で直接入力の場合は %i
(出力)
ファイル名:for.txt
ファイル名:macro.txt
ファイル名:setlocal.txt
ファイル名:test1.txt
ファイル名:test2.txt
ファイル名:test3.txt
サンプルソース
カレントディレクトリ内のフォルダ名を取得
(入力:バッチ内記載)
for /D %%i in (*) do (echo フォルダ名:%%i) >> E:\for.txt
※バッチ内だと変数は %%i 、コマンド内で直接入力の場合は %i
(出力)
フォルダ名:folder1
フォルダ名:test
サンプルソース
指定したディレクトリ内及びそのサブディレクトリ内のファイル名を取得
(入力:バッチ内記載)
for /R E:\ %%i in (*) do (echo ファイル名:%%i) >> E:\for.txt
※バッチ内だと変数は %%i 、コマンド内で直接入力の場合は %i
(出力)
フォルダ名:e:\calltest.bat
フォルダ名:e:\calltest2.bat
フォルダ名:e:\for.txt
フォルダ名:e:\macro.txt
フォルダ名:e:\setlocal.bat
フォルダ名:e:\setlocal.txt
フォルダ名:e:\test1.txt
フォルダ名:e:\test2.txt
フォルダ名:e:\test3.txt
フォルダ名:e:\folder1\test1.txt
フォルダ名:e:\folder1\test2.txt
サンプルソース
繰り返しループ処理を行う。
(入力:バッチ内記載)
for /L %%i in (1,1,5) do (echo %%i) >> E:\for.txt
※バッチ内だと変数は %%i 、コマンド内で直接入力の場合は %i
※スタート 1 、1ずつ増加して、5で終了。
(出力)
1
2
3
4
5
サンプルソース
テキストファイルから(スペースorタブ)を区切り文字として、文字を読み込み。
※以下をテキストファイル(test1.txt)の内容とする
あ い う え お
か き く け こ
さ しすせそ
あ い つてと
(入力:バッチ内記載)
for /F "tokens=1,3" %%i in (E:\test1.txt) do (echo %%i %%j) >> E:\for.txt
※バッチ内だと変数は %%i 、コマンド内で直接入力の場合は %i
※区切り文字を(スペースorタブ)として、1番目と、3番目の文字列を読み込む。
(出力)
あ う
か く
さ
あ つてと
サンプルソース
テキストファイルから、任意の文字列を区切り文字として、文字を読み込み。
※以下をテキストファイル(test1.txt)の内容とする
あ い う え お
か き く け こ
さ しすせそ
あ い つてと
(入力:バッチ内記載)
for /F "tokens=2 delims=い" %%i in (E:\test1.txt) do (echo %%i) >> E:\for.txt
※バッチ内だと変数は %%i 、コマンド内で直接入力の場合は %i
※区切り文字を「い」として、2番目の文字列を読み込む。
(出力)
う え お
つてと