怎么写批处理删除指定路径下某一天的压缩文件(每天执行),同时保留每月1号的文件作为备份?!
删除指定日期文件的脚本已修改好(如下),现在想要加入一个“保留每月1号的文件作为备份”的需求,该怎么调整脚本:
@echo off
rem ====================================
rem 删除过期备份数据
rem ====================================
::删除指定路径下指定天数之前(以文件名中包含的日期字符串为准)的文件。
::假设文件夹名中包含的日期字符串(比如:2013-01-12kingdee)
::可删除几天前指定日期的数据,也可删除几天前的全部数据
rem 指定待删除文件的存放路径
set SrcDir=d:\kingdee-backdata
rem 指定天数
set DaysAgo=1
::删除1天前文件夹(2013-01-12kingdee)
>"%temp%\DstDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%\DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%\DstDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%\DstDate.vbs"') do (
set "DstDate=%%a"
)
set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
setlocal enabledelayedexpansion
for /d %%a in (*.*) do (
set "FileDate=%%~na"
set "FileDate=!FileDate:~0,10!"
if "!FileDate!" == "%DstDate%" (
if exist "%%a" (
echo.&echo.
echo 删除文件夹%%a
rem pause
rd /s /q "%%a"
)
)
)
endlocal
echo.&echo.