批处理bat问题:删除一个文件夹下所有子文件夹下指定时间前的文件

我的backup文件夹下会每天根据当天时间生成,backup2013620子文件夹,比如今天会生成backup2013621子文件夹,我想建立一个批处理,每天执行,删除backup文件夹下7天前生成的子文件夹

要是有个2013111,这是11月1号,还是1月11号????????,本身这样做备份文件名就不太合理的,要做也做成yyyymmdd全用8位格式的.

下面代码是比较文件的创建时间来处理,不是比较文件夹名称上的时间

测试结果正确后删除第6行的echo 

@echo off
for /f "tokens=1-3 delims=/- " %%a in ("%date%")do set/a y=%%a,m=1%%b%%100,d=1%%c%%100,"m=(m+9)%%12,y-=m/10+1900,i=365*y+y/4+(m*153+2)/5+d-1"
for /f "tokens=1,4" %%i in ('dir /tc/ad backup*^|find "<DIR>"') do (
  setlocal enabledelayedexpansion
  for /f "tokens=1-3 delims=/- " %%a in ("%%i")do set/a y=%%a,m=1%%b%%100,d=1%%c%%100,"m=(m+9)%%12,y-=m/10+1900,i-=365*y+y/4+(m*153+2)/5+d-1"
  if !i! gtr 7 echo rd /s/q "%%j"
  endlocal
)
pause&exit /b

温馨提示:答案为网友推荐,仅供参考
相似回答