Board logo

标题: [文本处理] 批处理如何取得文件的生成时间进行文件的删除操作? [打印本页]

作者: lsgmj    时间: 2012-12-17 05:12     标题: 批处理如何取得文件的生成时间进行文件的删除操作?

现有C盘下,如C:/WINDOWS/LOG/X年/X月/XXX.LOG,其中XXX为前缀+时间生成的文件名(如:RIS20121216.log),会产生多个不同名的LOG;现在这个LOG生成方式是根据时间,比如说2012-12-17 00:00:00,会重新生成一个新的日志文件,然后这个日志在这个24小时内是动态更新的,不停的在增长,直到2012-12-17 59:59:59秒结束,然后到2012-12-18 00:00:00又会重新生成一个;需要做的就是删除2012-12-17这一天在C:/WINDOWS/LOG/X年/X月/下生成的所有日志文件,我的想法就是做一个批处理,在新的一天开始以后自动执行,通过系统日期减去一天后,去将前一天的日志文件全部删除,这样就可以完全不用考虑生成多少个日志文件及文件的命名方法等;但是这个批处理复杂的情况就在于目录下的X年/X月,比如说到2013年1月1日,这个时候产生一个新的年份的文件夹,及在其下生成一个新的月份文件夹,再生成日志;这个时候我应该如何还是只通过这一个批处理来进行删除2012年这整个年份的文件夹;同理,涉及到跨月的情况,如何直接删月份的文件夹;问题总结一下就是,在同一个月内,在新的一天开始时通过任务计划执行该批处理删除头一天所产生的日志文件,在跨月后第一天如何删除前一天整个月份的文件夹,在跨年后第一天删除前一天整年的文件夹;求高手不吝指教。
作者: lsgmj    时间: 2012-12-20 22:00

高手们,赐教啊!
作者: 学习ing    时间: 2012-12-22 23:24

本帖最后由 学习ing 于 2012-12-22 23:28 编辑

可以用forfiles来解决,这个文件XP下好像是没有,XP以后的系统中都会有的,2003也有
  1. forfiles /p c:\windows\log /m *.log /s /d -1 /c "cmd /c del /q @file"
复制代码
/d -1就是删除1天前的




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2