中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 11:39
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 难题 如何用批处理删除7天前的记录! 查看 1,130 回复 3
楼 主 难题 如何用批处理删除7天前的记录! 发表于 2006-11-19 05:42 ·  中国 上海 黄浦区 电信
初级用户
积分 76
发帖 29
注册 2006-11-18 23:59
19年会员
UID 70996
性别 男
状态 离线
公司有个软件每天会自动生成历史文件 如18号生成如下两个文件 D:\kingreat\Histdata\20061118detail.dbf
D:\kingreat\Histdata\20061118sum.dbf

现在就上想要在每天的10点钟自动删除7天以前的记录,不知道有没有办法用批处理实现?我以前也找过类似的例子 好象没有用哦 不知道有没有哪位高手知道怎么写?系统是98 如果可能的话能不能在写个XP的 ?好象XP和2000等不一样!

[ Last edited by lanlinlan on 2006-11-18 at 04:44 PM ]
2 发表于 2006-11-19 06:52 ·  中国 甘肃 甘南藏族自治州 合作市 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
xp下,根据你%date%格式修改下,我%date%是 2006-11-18 星期六

set /a "d_=%date:~0,4%%date:~5,2%%date:~8,2%-7"

for /f "tokens=*" %%? in ('dir /a-d/b D:\kingreat\Histdata') do (
set "n_=%%~n?"
set "nx=%n_:~0,8%"
if %nx% lss %d_% del /f/q "%%?"
)

未测试

[ Last edited by vkill on 2006-11-19 at 06:53 AM ]
3 发表于 2006-11-19 10:23 ·  中国 陕西 西安 电信
新手上路
积分 14
发帖 7
注册 2006-10-20 11:48
19年会员
UID 67270
状态 离线
不懂,学习中~~~
4 发表于 2006-11-27 22:01 ·  中国 江苏 苏州 电信
初级用户
积分 72
发帖 35
注册 2006-11-13 01:26
19年会员
UID 70380
性别 男
状态 离线
windows 2003 下面有个DOS小工具 叫forfiles.exe,很好用。(网上去下载一个,或者03系统光盘里去找)
你配合一下系统的计划任务,加上这个批处理:
[code]forfiles /p D:\kingreat\Histdata\ /D -7 /c "CMD /C DEL @file"[/code]
就可以搞定删除七天前的文件了。
(注,七天前指的是修改时间,不是生成时间)
记得CCF的hitme写过一个脚本,不过我没有成功过。

[[i] Last edited by aspirer on 2006-11-27 at 09:03 AM [/i]]
论坛跳转: