[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 求教:判断文件日期以便根据条件判断方便删除?

现有一需求,硬盘存有一定的文件,日积月累,就得很多了,哪位高手能否来一个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 编辑 ]

回复 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%
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

5楼的日期是写死的,请问怎么取今天的7天前的日期呢?
我是初学,不知道日期怎么运算,还请指点一下,谢谢

TOP

回复 6楼 的帖子

5楼不是给出代码了么?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

请教一下,我是初学者,
怎么判断 文件的创建日期在7天前,这样的条件?
我是需要一个自动备份的批处理,每天运行一次,备份7天前的文件且删除已备份的文件,这些文件是每天一个文件夹的,文件夹名称类似于2008-01-20
谢谢

TOP

  以下是演示删除创建日期在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
复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

你用红色标出来,还以为你想删除红色的文件。。
为了确认一下。。。到底删除哪些文件、?
心绪平和,眼藏静谧。

TOP

从楼主给出的信息来看,应该是修改日期。

TOP

  文件的日期属性有好几个:创建日期、修改日期、最后访问日期,不知道要按照哪个日期来删除。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

返回列表