中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 从文本提取指定日期文件名并删除
作者:
标题: 从文本提取指定日期文件名并删除 上一主题 | 下一主题
gene771771
初级用户





积分 105
发帖 77
注册 2006-11-9
来自 重庆
状态 离线
『楼 主』:  从文本提取指定日期文件名并删除

现有一文档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日建立的文件.
请问有好的方法吗?

2006-12-15 00:53
查看资料  发送邮件  发短消息 网志  OICQ (280385115)  编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 2 楼』:  

  演示代码如下,觉得满意了再把 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


   此帖被 +6 点积分      点击查看详情   
评分人:【 redtek 分数: +5  时间:2006-12-16 11:00
评分人:【 gene771771 分数: +1  时间:2006-12-17 00:33




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-15 01:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 3 楼』:  

再来一个另类删2006年12月3日至15日之间的文件的方法:)

(注:下面指令删除2006-12-03当天一直到2006-12-15日之间的文件(含15号当天的文件)
rar  a  /R /M0  /DF /TA20061203   /TB20061216   压缩后的文件名   你要删除指定日期的那批文件所在目录




    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-15 02:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 4 楼』:  

使用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  参数是压缩指定目录下的所有目录中的文件)

……


   此帖被 +6 点积分      点击查看详情   
评分人:【 lxmxn 分数: +5  时间:2006-12-15 04:31
评分人:【 gene771771 分数: +1  时间:2006-12-17 00:35




    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-15 02:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lh82102849
初级用户





积分 24
发帖 11
注册 2006-9-30
状态 离线
『第 5 楼』:  

学习了,原来还可以这样啊
谢谢分享

2006-12-15 03:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 6 楼』:  


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


2006-12-15 04:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 7 楼』:  

恩,还可以用winrar来实现哦~学习了

2006-12-16 10:03
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: