Board logo

标题: 从文本提取指定日期文件名并删除 [打印本页]

作者: gene771771     时间: 2006-12-15 00:53    标题: 从文本提取指定日期文件名并删除
现有一文档a.txt内容及格式如下:
这实际上是一个列表,前边是日期,后边是文件名
....
2005-12-02 43324
2005-12-03 232323
2005-12-04 rjjjdj
2005-12-05 fhsh
2005-12-06 sdhsh
....
2005-12-12
2005-12-13 fhhshs
2005-12-14
2005-12-15 fdhfg
....
目的:用批处理来提取a.txt中的文件名,并删除指定的某断时间内建立的文件,我想删除2006年12月3日至15日建立的文件.
请问有好的方法吗?

作者: namejm     时间: 2006-12-15 01:54
  演示代码如下,觉得满意了再把 echo 语句换成 del 语句:

@echo off
for /f "tokens=1*" %%i in (a.txt) do (
if %%i geq 2005-12-03 if %%i leq 2005-12-15 if not "%%j"=="" echo "%%j"
)
pause

作者: redtek     时间: 2006-12-15 02:34
再来一个另类删2006年12月3日至15日之间的文件的方法:)

(注:下面指令删除2006-12-03当天一直到2006-12-15日之间的文件(含15号当天的文件)



rar a /R /M0 /DF /TA20061203 /TB20061216 压缩后的文件名 你要删除指定日期的那批文件所在目录

作者: redtek     时间: 2006-12-15 02:34
使用Winrar压缩工具特性,执行后相当于被删的文件被移到了压缩包里,如不想再要了,就删压缩包.RAR就行了,如果误删,还可解压恢复。


关于上面指令已测试通过,下面给出Winrar的参数解释, RAR.EXE /? 有更详帮助:)

(注:我将WinRAR压缩工具目录内的 rar.exe 直接copy到了 windows 目录中,调用的时候方便,懒得再修改环境PATH信息:)


ta<日期> 处理在以 YYYYMMDDHHMMSS 格式描述的 <日期> 之后修改的文件

tb<日期> 处理在以 YYYYMMDDHHMMSS 格式描述的 <日期> 之前修改的文件
       (注意:指这日期以前文件,不包括指定的日期本天,所以日期要加1)


m<0..5> 设置压缩等级 (0-存储...3-默认...5-最大)
       (注:使用 /M0 参数,因为压缩的过程就是删的过程,/M0是不压只存,所以速度快)

df 生成压缩档案后删除文件
      (注:就是压缩以后就把源文件直接删掉了,起到间接删目录中不需要的文件作用)


r 包含所有子目录
     (注: /R 参数是压缩指定目录下的所有目录中的文件)

……


作者: lh82102849     时间: 2006-12-15 03:03
学习了,原来还可以这样啊
谢谢分享

作者: lxmxn     时间: 2006-12-15 04:32

  看来 Redtek 兄对各种命令行的工具都颇有研究啊,又学到不少。加分~

作者: vkill     时间: 2006-12-16 10:03
恩,还可以用winrar来实现哦~学习了