Board logo

标题: [已结]自动删除相隔第14天的文件夹 [打印本页]

作者: yuwancumian     时间: 2008-10-14 15:00    标题: [已结]自动删除相隔第14天的文件夹

比如服务器上现已有2008-10-12和2008-10-19两个文件夹,下周2008-10-26这天会自动在创建一个2008-10-26的文件夹,所以我想在创建2008-10-26文件夹之前先自动的删除前两周前创建的2008-10-12这个文件夹,依次类推,每过7天后又会创建一个以当天日期的文件夹,在创建之前要先删除上两周的那个时间文件夹

[ Last edited by HAT on 2008-10-14 at 16:06 ]
作者: tireless     时间: 2008-10-14 15:08
2008-10-13 这样的文件夹有没有很多个?如果只有一个,那在创建文件夹前,执行 rd /s /q 2008* 就可以了吧
作者: yuwancumian     时间: 2008-10-14 15:12
有两个的
作者: yuwancumian     时间: 2008-10-14 15:13
rd /s /q 2008*这样把我的另外一个文件夹也删除了啊
作者: yuwancumian     时间: 2008-10-14 15:20
不好意思重新编辑了一下内容,各位高手可能看的更清楚一点
作者: pusofalse     时间: 2008-10-14 15:21

datex -d 2008-10-20 -o -7
http://www.vkill.net/tools/DateX_2.5.rar
作者: tireless     时间: 2008-10-14 15:31
@echo off
for /f "delims=" %%a in ('dir /a:d /t:c /b "c:\2008-*"') do echo rd /s /q "%%a" & exit /b

先运行这个批处理,看被删除的文件夹名称是否正确。没错的话,将 echo 删除。
(c:\ 是文件夹所在目录。如果批处理与文件夹在同一个目录,则不需要 c:\)

[ Last edited by tireless on 2008-10-14 at 16:07 ]
作者: yuwancumian     时间: 2008-10-14 15:42
不好意思,我是菜鸟,将哪个 echo去掉啊,我不知道怎么写
作者: HAT     时间: 2008-10-14 15:44
来个保险一点的:
@echo off
set SrcDir=C:\test
>"%temp%\MyDate.vbs" echo LastDate=date()-14
>>"%temp%\MyDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%\MyDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"') do (
  set DateFlag=%%a
)
set DateFlag=%DateFlag:~0,4%-%DateFlag:~4,2%-%DateFlag:~6,2%
for /f %%a in ('dir /b /ad "%SrcDir%"') do (
  if "%%a" equ "%DateFlag%" (
    rd /s /q "%SrcDir%\%%a"
  )
)
注:为了更保险,把判断条件从leq改成equ了。

[ Last edited by HAT on 2008-10-14 at 15:57 ]
作者: yuwancumian     时间: 2008-10-14 15:50
版主,很感谢你,测试了一下还是不行的,删除不掉前14天的那个文件夹,set SrcDir=C:\test  的test是什么意思啊
作者: HAT     时间: 2008-10-14 15:56    标题: Re 10楼

假设你的2008-10-12和2008-10-19之类的文件夹都在C:\test里面
作者: yuwancumian     时间: 2008-10-14 16:01
这个不受年份的限制吧
作者: yuwancumian     时间: 2008-10-14 16:03
谢谢版主,解决了,太谢谢你了
作者: HAT     时间: 2008-10-14 16:06    标题: Re 12楼

从理论上来说,年份到达9999年以后,我也不知道接下来会发生什么事情。但是在我们有生之年,这个代码是不会受年份限制的。