标题: [文件操作] 【已解决】请问如何用批处理判断删除几天前的文件? [打印本页]
作者: 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 发表
揣摩楼主的意思,似乎是根据文件夹建立的时间来删除文件?
对啦对啦。。。就是这个意思 因为文件夹修改过 所以修改日期会变 不能用这个做依据
感谢! 我去看看
作者: Batcher 时间: 2008-10-24 09:10 标题: 回复 5楼 的帖子
既然文件夹的名字不变,还判断什么创建日期或者修改日期干吗?
照3楼的做既可。
作者: mqs 时间: 2008-10-26 15:37
晕。 不行 我写出来总是有错
删除 f:\backup 文件夹里面15天前的文件文件夹
只实现这个 具体怎么写啊 郁闷
作者: Batcher 时间: 2008-10-27 11:41 标题: 回复 7楼 的帖子
- @echo off
- rem 演示:删除指定路径下指定天数以前的文件夹,文件夹命名方式形如2008-10-5
- rem 如果演示结果无误,把rd前面的echo去掉,即可实现真正删除
- setlocal enabledelayedexpansion
- rem 指定待删除文件夹的存放路径
- set SrcDir=C:\Test
- rem 指定天数
- set DayAgo=15
- >"%temp%\MyDate.vbs" echo LastDate=date()-%DayAgo%
- >>"%temp%\MyDate.vbs" echo FmtDate=year(LastDate) ^& month(LastDate) ^& day(LastDate)
- >>"%temp%\MyDate.vbs" echo wscript.echo FmtDate
- for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"') do (
- set DateFlag=%%a
- )
- for /f %%a in ('dir /b /ad "%SrcDir%"') do (
- set FldDate=%%a
- set FldDate=!FldDate:-=!
- if !FldDate! leq %DateFlag% (
- echo rd /s /q "%SrcDir%\%%a"
- )
- )
- 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 |