重複録画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