windowsバッチでリストファイルに書かれた内容を1行ずつ処理しながらループする方法
コード
list.txt に書かれたファイルを順番にコピーするサンプルになります。
list.txt の内容。
file1.txt
file2.txt
file3.txt
copy.bat の内容。
@echo off
SET listfile=list.txt
SET dirfrom=C:\from
SET dirto=C:\to
FOR /F %%I IN (%listfile%) DO (
copy %dirfrom%\%%I %dirto%\%%I
)
解説
ファイル名が書かれたファイル名を変数に格納しています。
SET listfile=list.txt
コピー元のディレクトリを指定してます。
SET dirfrom=C:\from
コピー先のディレクトリを指定してます。
SET dirto=C:\to
list.txt の中身を展開してループを回しています。
%%I の中にファイルから読み取った 1 行が格納されます。
FOR /F %%I IN (%listfile%) DO (
copy %dirfrom%\%%I %dirto%\%%I
)