中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教一个问题关于批量删除的问题
作者:
标题: 请教一个问题关于批量删除的问题 上一主题 | 下一主题
footgod
新手上路





积分 5
发帖 5
注册 2010-1-11
状态 离线
『楼 主』:  请教一个问题关于批量删除的问题

例如:
当天系统日期为:20100112
test目录下有如下文件:
test20091231.dmp
test20091231.log
test20100109.dmp
test20100109.log
test20100110.dmp
test20100110.log
test20100111.dmp
test20100111.log
test20100112.dmp
test20100112.log
目的:
以当天系统日期为准,保留上一月的文件,删除其他文件。
按以上例子说就是删除除201001月份以外的所有文件。
这个问题超出我的能力。希望高手不吝赐教!

2010-1-12 11:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
footgod
新手上路





积分 5
发帖 5
注册 2010-1-11
状态 离线
『第 2 楼』:  

报告,没有达人帮忙给出段批处理代码么?还是批处理无法做到呢?

2010-1-12 15:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qinchun36
高级用户

据说是李先生


积分 609
发帖 400
注册 2008-4-23
状态 离线
『第 3 楼』:  

你自己描述就有问题:“保留上一月” 然后又是 “删除除201001月份以外的” ...

先用搜索找吧,已经有很多讨论了,关键字:

日期 删除



┏━━━━━━┓
┃据说是李先生┃
┠──────┨
┃*ntRSS┃
┗━━━━━━┛
2010-1-12 16:18
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
bsijl
新手上路





积分 15
发帖 7
注册 2006-2-12
状态 离线
『第 4 楼』:  

for /f %i in ('dir ^|find /i "2010/01/10"') do @echo %i
以上这个可能列出创建时间是"2010/01/10"'的文件,你可以用这个思路试下,把@echo %i 改成 del 可能要用到IF语句
我也是初学者,我会关注的,呵呵

[ Last edited by bsijl on 2010-1-12 at 16:48 ]

2010-1-12 16:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bsijl
新手上路





积分 15
发帖 7
注册 2006-2-12
状态 离线
『第 5 楼』:  

for /f "tokens=4" %i in ('dir *.txt ^|find /i "2010/01/10"') do @echo %i
这样可以准确列出时间为2010/01/10文件名,再怎么弄我就不会了

2010-1-12 16:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bsijl
新手上路





积分 15
发帖 7
注册 2006-2-12
状态 离线
『第 6 楼』:  

----------在其它帖子里找到的,可能对你有帮助
如果你用的系统是2003,那就简单多了,用forfiles命令,如果是2000或XP可以从2003上把这个命令拷贝过去直接用,代码很短,我写的你可以参考
@echo off
::-----------------------------------------------
::
::批量删除日志
::运行环境:windows2003,在2000、xp下可以将forfiles.exe拷贝到windows/system32下
::xjgz      ywz
::20080506第一版
::
::-----------------------------------------------

@echo [批量删除日志]

Title [删除超过7天的日志]

::批处理命令开始-----------------------------------
@echo [正在删除目录:D:\log下的日志(*.log)]
Forfiles /D -7 /p D:\log /s /M *.log  /C "cmd /c del @file  %%i
@echo [已完成删除目录:D:\log下的日志(*.log)]
::批处理命令结束-----------------------------------
pause::[提示按任意键结束...]

   此帖被 +1 点积分    点击查看详情   
评分人:【 jobszheng5 分数: +1  时间:2010-1-14 23:28


2010-1-12 16:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
footgod
新手上路





积分 5
发帖 5
注册 2010-1-11
状态 离线
『第 7 楼』:  

感谢6楼帅哥,目的达到。你太有才了。十分感谢!

2010-1-14 15:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: