2つのディレクトリを監視し、ファイルを自動的に移動する

"監視ディレクトリ1"と、"監視ディレクトリ2"をチェックします。
どちらかのディレクトリに、"監視条件"に合うファイル(ファイル名)が見つかると、"送り先"へ移動します。
条件に合うファイルがどちらにも見つからなかった場合、"タイマ時間"待機して、その後に再度チェックします。


ファイル名に半角スペース等があるとうまく動きません。

@echo off
setlocal

rem ---------------------------------------------------------------
rem 2つのディレクトリを監視し、ファイルを自動的に移動する
rem ---------------------------------------------------------------

rem <変数セット>
:parameter
	rem 監視条件
		set FILE_NAME=*.ts
	rem 監視ディレクトリ1
		set SRC1_DIR=G:\1
	rem 監視ディレクトリ2
		set SRC2_DIR=G:\2
	rem 送り先
		set MOVE_DIR=G:\3
	rem タイマ時間(sec)
		set TIMER_SET=60

rem <プログラム本体>
:main
	set NUM=0
	rem ディレクトリがなければ作成
		if not exist %MOVE_DIR% mkdir %MOVE_DIR%

:move1
	cd /d %SRC1_DIR%
	set GET_NAME=""
	rem 一番古いファイルを取得
		for /f "delims=" %%F in ('dir %FILE_NAME% /o-d /b') do set GET_NAME=%%F
	rem 対象が存在しなければ次のルーチンへ
		if %GET_NAME%=="" goto cnt1
	rem 対象が存在すれば送り先へ移動させる
		move %GET_NAME% %MOVE_DIR%\%GET_NAME%
		echo 移動: %GET_NAME%%MOVE_DIR%
		echo.
	goto move2

:cnt1
	rem 無限ループ回避用
		set /a NUM+=1
		goto move2

:move2
	cd /d %SRC2_DIR%
	set GET_NAME=""
	rem 一番古いファイルを取得
		for /f "delims=" %%F in ('dir %FILE_NAME% /o-d /b') do set GET_NAME=%%F
	rem 対象が存在しなければ次のルーチンへ
		if %GET_NAME%=="" goto cnt2
	rem 対象が存在すれば送り先へ移動させる
		move %GET_NAME% %MOVE_DIR%\%GET_NAME%
		echo 移動: %GET_NAME%%MOVE_DIR%
		echo.
	goto move1

:cnt2
	rem 無限ループ回避用
		if %NUM% gtr 0 goto timer
		goto move1

:timer
	rem タイマ
		timeout /T %TIMER_SET%
		goto main