日期:2014-05-17  浏览次数:20742 次

想写一个关于删除指定日期目录的bat文件
单位里有一个应用,需要每天定期备份,但是数据量比较大,因此想只保留三天的数据,例如:今天是6月16日,那么在备份今天的数据前,先删除6月13日及以前的记录,只保留14、15、16日的记录。

我的想法是,在备份记录的时候,通过"mkdir backup_%date%"的命令生成当天的备份目录。
但是在.bat文件中应该如何去删除三天前的备份目录呢?

想请教各位大侠,谢谢。


------解决方案--------------------
关注中
------解决方案--------------------
跟日期的格式有关~~` 我这是~~
2008-06-16 星期一

mkdir backup_%date% 结果是创建了一个"backup_2008-06-16" 一个"星期一"的目录呵``
------解决方案--------------------
其他的都好办,我考虑的就是跨年计算,这个不好解决。比如你有一个文件夹是2007年12月30日创建,如果2008年1月1日,反推的话有点不好算,不过我已经想了另外一个办法,应该可以实现。

如果你创建的备份文件夹都保存在一个路径下,而且有前缀那就不一样了。

比方,可以获取今天的日期,然后算出昨天和前天,然后列举所有的备份文件夹的创建日期,循环对比这三个赋值,不符合的一律删掉,我想这样就可以实现搂主的想法了。毕竟刚好跨年执行的可能性很小,呵呵。

晚上写一个试试,成了就给搂主贴上来。
------解决方案--------------------
谢谢各位大侠的关注,昨天已经搞好了,采用的是根据文件目录创建的时间先后来进行判断、删除,具体参考了网上一位李大侠的博客文章:http://blog.csdn.net/liguannan_bdqn/archive/2006/12/30/1468693.aspx

要注意的就是,在xp系统和2000系统的dos下,date命令的输出格式不一样:
XP系统的输出是:
#date
2008-06-17
而2000系统下的输出是:
#date
2008-06-17 星期二 (2000系统会将周几也显示出来)

在2000系统可以通过截取date输出的方式,例如用%date:~0,10%,表示从第一位开始,截取前10位的输出结果。