Board logo

标题: 各位大大,求一个清理以日期命名的文件的批处理脚本! [打印本页]

作者: 222222     时间: 2009-1-6 11:14    标题: 各位大大,求一个清理以日期命名的文件的批处理脚本!
各位大大,求一个清理以日期命名的文件夹的批处理脚本!
我有很多日志文件,会每天生成一个以日期命名的目录,然后将所有的日志存放到这个目录下。

20081130
20081201
20081202
20081203
20081204

我想实现的是,每个月清理一次(这个用计划任务就可以了),不过,删除6个月以前的文件夹,不知道怎么弄呢。因为要一个个取出文件夹的名字和日期对比,然后删除整个目录和下面的文件。
我参考过论坛里一位前辈的脚本:
http://www.cn-dos.net/forum/viewthread.php?tid=37623
但是改了半天还是没能为自己所用。
希望各位大大能帮我一个忙。谢谢各位了。

作者: yishanju     时间: 2009-1-6 12:44
用批处理写计算日期的代码比较繁杂,如果可以,DATEX 计算180天前日期
每天删除一次180天前的日志
在论坛里搜索DATEX

Last edited by yishanju on 2009-1-6 at 12:48 ]

作者: 222222     时间: 2009-1-6 13:56
那个帖子里计算日期已经搞定啦。
就是以文件名比对日期进行删除不知道怎么弄,能不能帮帮忙啊。

作者: nafan     时间: 2009-1-6 17:01
你把写的脚本贴上来嘛!!

作者: nafan     时间: 2009-1-6 17:17
其实那篇文章的意思你能借鉴上,你的log文件是不更改的吧,其实创建日期就是你的目录名啊,哈哈

作者: netbenton     时间: 2009-1-8 03:49
echo off
set d=%date:~,10%
set d=%d:-=%
set /a n=%d:~4,2%-6
set /a d=d-600
if %n% lss 0 set /a d=d-8800
echo 六个月前的日期: %d%

for /f %%i in ('dir /ad /b') do (if %%i lss %n% (echo del Dir %%i&del /y %%i&rd %%i))

作者: RGB     时间: 2009-1-20 15:11
看样子我还要再去学习一下
Ritchie Lawrence 批处理函数库中英文版