方法一:
@echo off ::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件。 ::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。 ::本例需要Win2003/Vista/Win7系统自带的forfiles命令的支持 rem 指定待删除文件的存放路径 set SrcDir=D:oraclebak rem 指定天数 set DaysAgo=1 forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c if @ISDIR==TRUE (echo rmdir /q /s @PATH) else (echo del /f @PATH)" pause
方法二:
::删除与批处理在同一目录里的30天前的文件夹,日期的判断以文件夹的创建日期为准。 ::此文件要放在要删除的文件夹目录里 >dstdate.vbs echo LastDate=date()-30 >>dstdate.vbs echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2) >>dstdate.vbs echo wscript.echo FmtDate ::获取30天前的日期 for /f %%a in ('cscript /nologo dstdate.vbs') do set "dstdate=%%a" ::格式化日期为年/月/日 set dstdate=%dstdate:~0,4%^/%dstdate:~4,2%^/%dstdate:~6,2% del dstdate.vbs /f /q >nul for /f "skip=1 tokens=1-4 delims= " %%a in ('dir /tc /ad ^| find ":"') do ( if %%a lss %dstdate% rd "%%d" /s /q ) pause