Board logo

标题: [文件操作] 求教:判断文件日期以便根据条件判断方便删除? [打印本页]

作者: leic    时间: 2008-7-28 16:38     标题: 求教:判断文件日期以便根据条件判断方便删除?

现有一需求,硬盘存有一定的文件,日积月累,就得很多了,哪位高手能否来一个P处理,运行后
1、自动扫描指定目录内的文件—>2、根据设定的日期(可以一开始就在代码中写死),判断年月日日期形式—>3、将符合条件的文件删除
就这样子而已,谢谢!辛苦一下各路高手

比如说:
----------------------------
isoemu                                                                2 KB   配置设置                       2004-11-09 22:40
isogrub                                                       6,880 KB   WinImage ISO                2008-03-11 21:55
bootfont                                                         316 KB   BIN File                           2008-03-18 06:00
NTDETECT                                                        47 KB   应用程序                       2008-03-18 06:00
ntldr                                                                300 KB   系统文件                       2008-03-18 06:00
BOOTSECT                                                         1 KB   DOS 文件                      2008-03-25 11:43
IO                                                                       0 KB   系统文件                       2008-03-25 12:03
MSDOS                                                               0 KB   系统文件                       2008-03-25 12:03
rising                                                                   1 KB   配置设置                       2008-03-25 17:04
boot                                                                    1 KB   配置设置                       2008-07-19 20:06
pagefile                                               1,548,288 KB   系统文件                       2008-07-28 09:04
-----------------------------------------
以上只有日期这部分是关建的,让P判断
介于‘2008-07-19’与‘2008-03-18’之间的文件(2008-03-18~2008-07-19),然后将这些文件删除!

尘土飞扬兄说得是, 文件的日期属性有好几个:创建日期、修改日期、最后访问日期,不知道要按照哪个日期来删除。

其实我想了实际情况,还是觉得以创建日期为标准来做判断比较合理也合乎实情,谢谢啊

[ 本帖最后由 leic 于 2008-7-28 21:25 编辑 ]
作者: namejm    时间: 2008-7-28 17:21

  文件的日期属性有好几个:创建日期、修改日期、最后访问日期,不知道要按照哪个日期来删除。
作者: Batcher    时间: 2008-7-28 17:36

从楼主给出的信息来看,应该是修改日期。
作者: pusofalse    时间: 2008-7-28 17:37

你用红色标出来,还以为你想删除红色的文件。。
为了确认一下。。。到底删除哪些文件、?
作者: namejm    时间: 2008-7-29 12:52

  以下是演示删除创建日期在2008-03-18~2008-07-19之间的当前目录下的所有文件(不包括子目录),如果屏幕上列出的文件符合要求,把 echo del /a /q 语句中的 echo 去掉之后,再次执行文件就可以真正删除了——删除有风险,操作需谨慎,如有问题,请及时跟帖说明。
  1. @echo off
  2. set date1=2008-03-18
  3. set date2=2008-07-19
  4. for /f "tokens=1,3*" %%i in ('dir /a-d /t:c^|findstr /b "[1-9].*-"') do (
  5.     if %%i gtr %date1% (
  6.         if %%i lss %date2% echo del /a /q "%%k"
  7.     )
  8. )
  9. pause
复制代码

作者: p4nt1um    时间: 2008-9-16 11:35

请教一下,我是初学者,
怎么判断 文件的创建日期在7天前,这样的条件?
我是需要一个自动备份的批处理,每天运行一次,备份7天前的文件且删除已备份的文件,这些文件是每天一个文件夹的,文件夹名称类似于2008-01-20
谢谢
作者: Batcher    时间: 2008-9-16 11:43     标题: 回复 6楼 的帖子

5楼不是给出代码了么?
作者: p4nt1um    时间: 2008-9-16 12:30

5楼的日期是写死的,请问怎么取今天的7天前的日期呢?
我是初学,不知道日期怎么运算,还请指点一下,谢谢
作者: Batcher    时间: 2008-9-16 14:46     标题: 回复 8楼 的帖子

  1. @echo off
  2. >"%temp%\MyDel.vbs" echo dt=date()-7
  3. >>"%temp%\MyDel.vbs" echo s=right(year(dt),4) ^& right("0" ^& month(dt),2) ^& right("0" ^& day(dt),2)
  4. >>"%temp%\MyDel.vbs" echo wscript.echo s
  5. for /f %%a in ('cscript /nologo "%temp%\MyDel.vbs"') do set DateFlag=%%a
  6. echo 7天前的日期是:%DateFlag%
复制代码





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