中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]自动删除相隔第14天的文件夹
作者:
标题: [已结]自动删除相隔第14天的文件夹 上一主题 | 下一主题
yuwancumian
初级用户





积分 20
发帖 9
注册 2008-10-14
状态 离线
『楼 主』:  [已结]自动删除相隔第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 ]

2008-10-14 15:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 2 楼』:  

2008-10-13 这样的文件夹有没有很多个?如果只有一个,那在创建文件夹前,执行 rd /s /q 2008* 就可以了吧

2008-10-14 15:08
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yuwancumian
初级用户





积分 20
发帖 9
注册 2008-10-14
状态 离线
『第 3 楼』:  

有两个的

2008-10-14 15:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yuwancumian
初级用户





积分 20
发帖 9
注册 2008-10-14
状态 离线
『第 4 楼』:  

rd /s /q 2008*这样把我的另外一个文件夹也删除了啊

2008-10-14 15:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yuwancumian
初级用户





积分 20
发帖 9
注册 2008-10-14
状态 离线
『第 5 楼』:  

不好意思重新编辑了一下内容,各位高手可能看的更清楚一点

2008-10-14 15:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 6 楼』:  


datex -d 2008-10-20 -o -7
http://www.vkill.net/tools/DateX_2.5.rar



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-10-14 15:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 7 楼』:  

@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 ]

2008-10-14 15:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yuwancumian
初级用户





积分 20
发帖 9
注册 2008-10-14
状态 离线
『第 8 楼』:  

不好意思,我是菜鸟,将哪个 echo去掉啊,我不知道怎么写

2008-10-14 15:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 9 楼』:  

来个保险一点的:
@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 ]



2008-10-14 15:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yuwancumian
初级用户





积分 20
发帖 9
注册 2008-10-14
状态 离线
『第 10 楼』:  

版主,很感谢你,测试了一下还是不行的,删除不掉前14天的那个文件夹,set SrcDir=C:\test  的test是什么意思啊

2008-10-14 15:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 11 楼』:  Re 10楼

假设你的2008-10-12和2008-10-19之类的文件夹都在C:\test里面



2008-10-14 15:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yuwancumian
初级用户





积分 20
发帖 9
注册 2008-10-14
状态 离线
『第 12 楼』:  

这个不受年份的限制吧

2008-10-14 16:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yuwancumian
初级用户





积分 20
发帖 9
注册 2008-10-14
状态 离线
『第 13 楼』:  

谢谢版主,解决了,太谢谢你了

2008-10-14 16:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 14 楼』:  Re 12楼

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



2008-10-14 16:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: