中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 20:50
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 求问“关于定期清理文件夹的bat”(等待中第2天了)
可打印版本  2,884 / 16
第1楼 sj2009 发表于 2009-12-15 14:46
新手上路 发帖 10 积分 10
求问“关于定期清理文件夹的bat”(等待中第2天了)
想做一个计划任务,定期1个月清理d:\视频录像的资料。
但不知道如何写这样的BAT文件,请好心人帮助。

[ Last edited by sj2009 on 2009-12-16 at 16:56 ]
第2楼 Hanyeguxing 发表于 2009-12-15 15:12
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
你要怎么清理呢?
如果是要每个月的这一天删除d根目录下(不含子目录)所有mpg文件,则可以:


[ Last edited by Hanyeguxing on 2009-12-15 at 15:25 ]
第3楼 hanxiaofeng888 发表于 2009-12-15 22:14
新手上路 发帖 4 积分 5
如果只做BAT让它每个月清理文件,那这个BAT必须一直开着
你可以这样。把下面的代码保存为BAT,把它添加到计划任务里,让它每个月启动一回就可以了 这样是不是很简短 呵呵
del /q d:\视频录像的资料\*.*
上面的只能删除d:\视频录像的资料\下的所有文件,不能删除文件夹和子目录下的文件
del /q /s d:\视频录像的资料\*.*
删除d:\视频录像的资料\下的所有文件和子目录下的所有文件,不能删除文件夹
第4楼 sj2009 发表于 2009-12-16 09:05
新手上路 发帖 10 积分 10
回2楼达人,我表达的不够准确,不好意思啦。
其实我想写的BAT文件,是为做一个计划任务,
定期1个月清理d:\视频录像的资料\*.*的视频文件,
就好比现在是2009.12月,我要清理前面10月和11月的视频文件,麻烦你再写下
第5楼 sj2009 发表于 2009-12-16 09:06
新手上路 发帖 10 积分 10
3楼的兄弟也多谢啦
第6楼 sj2009 发表于 2009-12-16 12:56
新手上路 发帖 10 积分 10
继续求解
第7楼 qinchun36 发表于 2009-12-16 16:02
高级用户 发帖 400 积分 609
请先右键看一下你那些文件的属性

你要清理的依据是 “创建时间” 还是 “修改时间

如果是后者的话可以帮你搞一下,前者如果用bat的话必须调用WMIC,太麻烦了我写不来。。。
第8楼 sj2009 发表于 2009-12-16 16:04
新手上路 发帖 10 积分 10
回LS,清理的依据是 “创建时间”
第9楼 sj2009 发表于 2009-12-16 16:05
新手上路 发帖 10 积分 10
请教如何清理以日期命名的文件夹

其实我想写的BAT文件,是为做一个计划任务,
定期2个月清理d:\视频录像的资料\20091201\目录下的视频文件,
20091201是以日期命名的文件夹,
就好比现在是2009.12月,我要清理前面10月和11月的视频文件
第10楼 sj2009 发表于 2009-12-16 16:14
新手上路 发帖 10 积分 10
第11楼 qinchun36 发表于 2009-12-16 17:11
高级用户 发帖 400 积分 609
靠,累死我了,给你写了一个,先别忙着运行,给你说明下先。

1、不要重复发帖,这种行为是很被鄙视的。

2、每次只能搞一个文件夹,因此每次要设置,改这个代码,通配符会吧,像
set files=d:\视频录像的资料\20091201\*.*
这样的,或者改成 *.rmvb

3、记住这个处理的是『创建日期』,请仔细理解。

4、先确认你机器安装了WMIC,具体做法是在命令行窗口中执行 wmic
安装之后才能运行这个批处理。


第12楼 Hanyeguxing 发表于 2009-12-16 19:14
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
首先,类似于多长时间运行一次批处理等,在任务计划中设置.

在任务计划中运行这个批处理:

其中:
1,路径是指要操作的目录,例如d:\视频录像的资料
2,时间是比较时间,例如以2009年10月12日09时13分为分隔点,则写成200910120913,其中:时间1是时间段的开始,时间2是时间段的结束,本批处理将删除这个时间段之间创建的所有文件
3,本批处理每次仅能处理一个目录(文件夹),且不处理其子目录(文件夹)
4,本批处理依赖dir的输出格式,所以运行前请测试dir命令输出,是否符合本批处理要求。在cmd 中运行 dir "路径" /a:-d /t:c
看输出是否下面示例样子。

驱动器 C 中的卷没有标签。
卷的序列号是 303A-5C0B

C:\Documents and Settings\寒夜孤星 的目录

2009-10-12 09:13 2,883,584 NTUSER.DAT
2009-10-12 09:13 24,576 ntuser.dat.LOG
2009-10-12 09:13 178 ntuser.ini
2009-10-12 21:48 976 ntuser.pol
4 个文件 2,909,314 字节
0 个目录 12,642,504,704 可用字节


如果只删除某个时间点之前的文件,则可以这样写:


[ Last edited by Hanyeguxing on 2009-12-16 at 19:54 ]
第13楼 Hanyeguxing 发表于 2009-12-16 20:39
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
如果要删除前几个月的文件,则可以这样写:

其中set n=设置月份的长度,例如,当前为12月,要删除前5个月份的文件,则设置set n=5,即检查的月份为07月,08月,09月,10月,11月。
注意,n必须为1到12之间的数字。

[ Last edited by Hanyeguxing on 2009-12-16 at 20:59 ]
第14楼 hanxiaofeng888 发表于 2009-12-16 20:59
新手上路 发帖 4 积分 5
楼上的 厉害 运用的如此巧妙和精简 学习了
第15楼 sj2009 发表于 2009-12-17 08:51
新手上路 发帖 10 积分 10
非常感谢:qinchun36和Hanyeguxing;
我会认真学习
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023