方法一:
@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
?