怎么写批处理删除指定路径下某一天的压缩文件(每天执行),同时保留每月1号的文件作为备份?!
删除指定日期文件的脚本已修改好,现在想要加入一个“保留每月1号的文件作为备份”的需求,改怎么调整脚本?@echooff::演示:删除指定路径下指定天数之前(以文件名中包含...
删除指定日期文件的脚本已修改好,现在想要加入一个“保留每月1号的文件作为备份”的需求,改怎么调整脚本?@echo off::演示:删除指定路径下指定天数之前(以文件名中包含的日期字符串为准)的文件。::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。::本例假设文件名中包含的日期字符串(比如:bak-2009-12-25.log)rem 指定待删除文件的存放路径set SrcDir=E:\testrem 指定天数set DaysAgo=3>"%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 FmtDatefor /f %%a in ('cscript /nologo "%temp%\DstDate.vbs"') do ( set "DstDate=%%a")set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%setlocal enabledelayedexpansionfor /d %%a in (*.*) do ( set "FileDate=%%~na" set "FileDate=!FileDate:~0,10!" if "!FileDate!" == "%DstDate%" ( if exist "%%a" (echo.&echo. echo 删除文件%%a.rarrem pause echo del /f /q "%%a.rar" ) ))endlocalpause
展开
5个回答
展开全部
::本例假设文件名中包含的日期字符串(比如:bak-2009-12-25.log)
rem 指定待删除文件的存放路径
set SrcDir=E:\test
rem 指定天数
set DaysAgo=3
cd /d %SrcDir%
for /f "skip=%DaysAgo%" %%i in ('dir/b/o-d bak*.log^|findstr /v 01.log') do del %%i
原来的程序写的好麻烦。把括号里面^|findstr /v 01.log去掉就是原来的功能。
展开全部
删除语句前加上一条语句,例如 move *-1.log 某个临时目录,删除完成后然后再把临时目录下的 *-1.log 文件移回原处就可以了
追问
这样不方便吧~~其实我想是不是只要在日期那里做下判断,如果发现要删除的文件时1号的,就跳出循环,不执行删除了~但是不知道这样可行不?也不知道能不能这样写
追答
那用 dir|findstr /e /v "-1.log" 这样的句子把1号的排除也可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
到csdn里面应该有例子
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询