标题: [已结]自动删除相隔第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年以后,我也不知道接下来会发生什么事情。但是在我们有生之年,这个代码是不会受年份限制的。