重複録画TSファイルがあれば、一番大きいもの以外を削除する

同番組名のTSファイルがあれば、サイズが最大のひとつを残して、ほかを削除します

再放送等で番組が重複した時の整理用です。
録画がうまくいかなかったときはファイルサイズが小さくなるので、一番大きいものを残すようにしました

@echo off
setlocal

rem ---------------------------------------------------------------
rem 重複録画TSファイルがあれば、一番大きいもの以外を削除する
rem 
rem 録画ファイル名称は以下の形式の対応(EpgDataCap_Bon)
rem $Title2$_$ServiceName$_$SDYYYY$$SDMM$$SDDD$$SDW$_$STHH$$STMM$-$ETHH$$ETMM$.ts
rem ---------------------------------------------------------------

rem <変数セット>
:parameter
	rem 対象ディレクトリ
		set TS_DIR=G:\test
	rem 一時ディレクトリ名称
		set TEMP_DIR=temporary

rem <プログラム本体>
:main
	rem 必要性を判断
		if not exist %TS_DIR%\*.ts goto finish
	rem 一時ディレクトリを作成
		if not exist %TS_DIR%\temporary mkdir %TS_DIR%\%TEMP_DIR%
	rem 一時ディレクトリに全て移動
		move %TS_DIR%\*.ts %TS_DIR%\%TEMP_DIR%
		goto get

rem 最大容量のファイルを残して整理
:get
	cd /d %TS_DIR%\%TEMP_DIR%
	set FILE_NAME=""
	rem 一番サイズの大きいファイルを取得
		for /f "delims=" %%F in ('dir *.ts /os /b') do set FILE_NAME=%%F
		if %FILE_NAME%=="" goto end
		echo %FILE_NAME%
	rem 一番サイズの大きいファイルを移動
		move %FILE_NAME% %TS_DIR%
	rem 重複ファイルがあれば残りを削除
		set FILE_NAME=%FILE_NAME:~0,-23%
		if exist %FILE_NAME%*.ts del /q %FILE_NAME%*.ts
		echo.
	goto get

:end
	cd /d %TS_DIR%
	rem 一時ディレクトリを削除
		rd /s /q %TEMP_DIR%

:finish
	rem 終了
		echo 終了
		endlocal
		exit