批处理bat问题:删除一个文件夹下所有子文件夹下指定时间前的文件
我的backup文件夹下会每天根据当天时间生成,backup2013620子文件夹,比如今天会生成backup2013621子文件夹,我想建立一个批处理,每天执行,删除b...
我的backup文件夹下会每天根据当天时间生成,backup2013620子文件夹,比如今天会生成backup2013621子文件夹,我想建立一个批处理,每天执行,删除backup文件夹下7天前生成的子文件夹
展开
1个回答
展开全部
要是有个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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询