先月の日付がファイル名についたファイルをバッチで消す

東京で週に一回バックアップしたファイルを大阪のサーバに更にバックアップしている。バックアップファイルのファイル名には日付が入っており、今月のファイルだけを大阪にコピーしている*1
問題はどうやって大阪側の古いファイルを消すかだ。
基本的に大阪に置いておくバックアップファイルは最新の物だけでよいが、それほど大きいファイルではないので10個程度あっても良い。
そこで先月のファイルを削除するバッチを大阪のサーバにいれて、週に一回動作させることにした。
vbsで作成すれば簡単だが、batで作ってみた。

rem バックアップディレクトリ
set BACKDIR=D:\BK\

rem ファイル名ヘッダとフッタその1
set BACKUPFILEHEAD1=AAA
set BACKUPFILEFOOT1=.dat

rem ファイル名ヘッダとフッタその2
set BACKUPFILEHEAD2=BBB
set BACKUPFILEFOOT2=.dat

for /F "tokens=1-2 delims=/ " %%a in ('date /t') do SET DTDEL=%%a%%b

rem 200403-1=200402,200412-1=200411
SET /A DTDEL1=%DTDEL%-1
if exist %BACKDIR%%BACKUPFILEHEAD1%%DTDEL1%*%BACKUPFILEFOOT1% del %BACKDIR%%BACKUPFILEHEAD1%%DTDEL1%*%BACKUPFILEFOOT1%
if exist %BACKDIR%%BACKUPFILEHEAD2%%DTDEL1%*%BACKUPFILEFOOT2% del %BACKDIR%%BACKUPFILEHEAD2%%DTDEL1%*%BACKUPFILEFOOT2%

rem 200401-89=200312,200402-89=200313
SET /A DTDEL2=%DTDEL%-89
if exist %BACKDIR%%BACKUPFILEHEAD1%%DTDEL2%*%BACKUPFILEFOOT1% del %BACKDIR%%BACKUPFILEHEAD1%%DTDEL2%*%BACKUPFILEFOOT1%
if exist %BACKDIR%%BACKUPFILEHEAD2%%DTDEL2%*%BACKUPFILEFOOT2% del %BACKDIR%%BACKUPFILEHEAD2%%DTDEL2%*%BACKUPFILEFOOT2%

今月は2009/4。以上のバッチは、D:\BK\ディレクトリに存在するAAA200903*.dat、BBB200903*.dat、AAA200815*.dat、BBB200815*.datを削除しようとする。
2008/15なんて月は存在しないが、たとえば1月に実行すると200901から89を引くと200812になって、消したいファイルを消せるのだ*2。2ヶ月前のファイルを消したかったら2と90を減算すればいいだけ。

*1:バッチで

*2:-100(1年)+11(ヵ月)と考えるといい。