批处理bat删除指定天数日期之前的文件
【方案一】删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件:BAT+REG+VBS
@echooff ::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件。 ::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。 ::本例调用了临时VBS代码进行日期计算 ::本例为兼容不同的日期格式,调用reg命令(XP系统自带)统一设置日期格式, ::处理完毕之后再把日期格式恢复成原来的状态。
rem指定待删除文件的存放路径 setSrcDir=C:/Test/BatHome rem指定天数 setDaysAgo=1 for/f"skip=2delims="%%ain('regquery"HKEY_CURRENT_USER/ControlPanel/International"/vsShortDate')do( set"RegDateOld=%%a" ) setRegDateOld=%RegDateOld:~-8% regadd"HKEY_CURRENT_USER/ControlPanel/International"/vsShortDate/tREG_SZ/dyyyy-M-d/f>nul >"%temp%/DstDate.vbs"echoLastDate=date()-%DaysAgo% >>"%temp%/DstDate.vbs"echoFmtDate=right(year(LastDate),4)^&right("0"^&month(LastDate),2)^&right("0"^&day(LastDate),2) >>"%temp%/DstDate.vbs"echowscript.echoFmtDate for/f%%ain('cscript/nologo"%temp%/DstDate.vbs"')do( set"DstDate=%%a" ) setDstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2% for/r"%SrcDir%"%%ain(*.*)do( if"%%~ta"leq"%DstDate%"( ifexist"%%a"( echodel/f/q"%%a" ) ) ) regadd"HKEY_CURRENT_USER/ControlPanel/International"/vsShortDate/tREG_SZ/d%RegDateOld%/f>nul pause