Board logo

标题: [文件操作] 【已解决】请问如何用批处理判断删除几天前的文件? [打印本页]

作者: mqs    时间: 2008-10-23 23:31     标题: 【已解决】请问如何用批处理判断删除几天前的文件?

现在有N个文件夹
都是以

2008-10-3
2008-10-10
2008-10-17
2008-10-21
2008-10-25

这样命名的,后面日期无规则(大概间隔是7天),不能通过判断修改日期操作,因为文件夹可能被改动,但是文件夹名没改

[attach]1536[/attach]

要通过判断几天之前的文件夹 然后进行 rd 命令,要如何写命令呢?   请指教
作者: youxi01    时间: 2008-10-23 23:56

揣摩楼主的意思,似乎是根据文件夹建立的时间来删除文件?
作者: terse    时间: 2008-10-24 00:17

那就通过文件夹名来判断
作者: 随风    时间: 2008-10-24 00:33

参考此帖
http://bbs.bathome.net/viewthrea ... hlight=%C9%BE%B3%FD
作者: mqs    时间: 2008-10-24 01:31

原帖由 youxi01 于 2008-10-23 23:56 发表
揣摩楼主的意思,似乎是根据文件夹建立的时间来删除文件?


对啦对啦。。。就是这个意思   因为文件夹修改过 所以修改日期会变 不能用这个做依据



原帖由 随风 于 2008-10-24 00:33 发表
参考此帖
http://bbs.bathome.net/viewthread.php?tid=139&highlight=%C9%BE%B3%FD


感谢! 我去看看
作者: Batcher    时间: 2008-10-24 09:10     标题: 回复 5楼 的帖子

既然文件夹的名字不变,还判断什么创建日期或者修改日期干吗?
照3楼的做既可。
作者: mqs    时间: 2008-10-26 15:37

晕。 不行    我写出来总是有错

删除 f:\backup 文件夹里面15天前的文件文件夹

只实现这个   具体怎么写啊    郁闷
作者: Batcher    时间: 2008-10-27 11:41     标题: 回复 7楼 的帖子

  1. @echo off
  2. rem 演示:删除指定路径下指定天数以前的文件夹,文件夹命名方式形如2008-10-5
  3. rem 如果演示结果无误,把rd前面的echo去掉,即可实现真正删除
  4. setlocal enabledelayedexpansion
  5. rem 指定待删除文件夹的存放路径
  6. set SrcDir=C:\Test
  7. rem 指定天数
  8. set DayAgo=15
  9. >"%temp%\MyDate.vbs" echo LastDate=date()-%DayAgo%
  10. >>"%temp%\MyDate.vbs" echo FmtDate=year(LastDate) ^& month(LastDate) ^& day(LastDate)
  11. >>"%temp%\MyDate.vbs" echo wscript.echo FmtDate
  12. for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"') do (
  13.   set DateFlag=%%a
  14. )
  15. for /f %%a in ('dir /b /ad "%SrcDir%"') do (
  16.   set FldDate=%%a
  17.   set FldDate=!FldDate:-=!
  18.   if !FldDate! leq %DateFlag% (
  19.     echo rd /s /q "%SrcDir%\%%a"
  20.   )
  21. )
  22. pause
复制代码

作者: mqs    时间: 2008-10-29 14:29     标题: 回复 8楼 的帖子

禁用了wscript就不能运行了  能不能不用vbs
作者: Batcher    时间: 2008-10-29 15:39     标题: 回复 9楼 的帖子

可以。
但是用bat来计算日期的话,需要一个非常复杂的算法(4楼就是用的那个算法),可读性比较差,我没有这个兴趣。
你可以自己改改吧,很简单的,就把那个算法拿过来用就行了。
作者: padpeng    时间: 2009-3-27 18:17

回复看看,正需要。谢谢




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