Makefile……じゃなくてバッチファイルを公開してみる(2)

複数のフォルダに一括の処理がしたいときに使うバッチファイルです。

@echo off

setlocal ENABLEDELAYEDEXPANSION

rem -- ここにフォルダの名前を書く --
rem -- 今書かれているのは一例 --
set folder1=D505i
set folder2=D505iS
set folder3=F505i
set folder4=N505i
set folder5=P505i
set folder6=P505iS
set folder7=SH505i
set folder8=SH505iS
set folder9=SO505i
set folder10=SO505iS

rem -- 合計フォルダの数 --
set num=10

rem -- 引数を連結 --
:ARGMENT
    if "%1" == "" goto ARG_END
    set execute=%execute% %1
    shift
    goto ARGMENT
:ARG_END

rem -- 全てのフォルダに命令を実行 --
set current=%cd%
for /L %%N in (1,1,%num%) do (
    cd !folder%%N!
    %execute%
    cd %current%
)

endlocal

使い方は、例えばこのバッチファイルの名前をmulti.batとすれば、

multi copy ..\data.dat .

とすれば、自身のフォルダから一つ上の階層のdata.datを、自身のフォルダにコピーしていきます。


使い方次第では便利かも?