フォルダ内に含まれるファイルの件数分、繰り返しながら特定の処理をする場合がよくありますので掲載します。
※処理は同期実行し、終了後は数秒待機しています。
- フォルダ内のファイル分、一定時間毎に処理を同期実行する
<周期実行.bat>
@echo off
rem INPUTファイルのパスを指定(ワイルドカードを利用可)
set FILE_PATH=C:\file\input_file_*.csv
echo 処理開始
rem 該当のファイル数分、繰り返しファクションを呼び出す
for %%F in (%FILE_PATH%) do (
call :func "%%F"
)
exit /b 0
:func
set FILE_NAME=%~1
echo 実行開始(%FILE_NAME%)
rem ファイル名を指定して何かを実行
java -classpath "Test.jar;" TestClass "%FILE_NAME%"
echo 実行終了
rem 10秒待機する
timeout /t 10
exit /b 0
※Setlocal enabledelayedexpansionを利用して遅延展開させても可能ですが、まとまった処理を関数で定義した方がわかりやすいので、私はそうしています。