中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-04 17:23
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助大侠:写一个自动处理邮箱文件过大的批处理程序 查看 855 回复 7
楼 主 求助大侠:写一个自动处理邮箱文件过大的批处理程序 发表于 2007-05-15 21:53 ·  中国 广东 深圳 诺瓦科技发展有限公司
新手上路
积分 12
发帖 5
注册 2007-05-15 21:13
19年会员
UID 88640
性别 男
状态 离线
问题:小弟是企业电脑技术员,公司员工用outlookexpress收信,限于oE软件本身的能力,如果一个收件箱文件超过一定容量就会极大影响oe速度,甚至不能打开oe。邮件文件都在D:\workmail\下。
思路:小弟想做一个开机脚本,每次开机时自动检测收件箱文件(收件箱.dbx)的大小是否超过400M,如果是的话,将这个文件改名成系统当前日期的(2007-5-15日前.dbx).
困惑:可以用dir获得文件大小,但该怎样做比较?
请各位高手指教.
2 发表于 2007-05-15 21:55 ·  中国 甘肃 定西 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
for .... %%~zi
3 发表于 2007-05-15 22:13 ·  中国 广东 深圳 诺瓦科技发展有限公司
新手上路
积分 12
发帖 5
注册 2007-05-15 21:13
19年会员
UID 88640
性别 男
状态 离线
什么意思,小弟对脚本没有什么研究,help也看得头疼,还要麻烦老大详细解释一下,或放出代码,感谢

[ Last edited by liang666669 on 2007-5-15 at 10:17 PM ]
4 发表于 2007-05-15 22:31 ·  中国 广东 深圳 诺瓦科技发展有限公司
新手上路
积分 12
发帖 5
注册 2007-05-15 21:13
19年会员
UID 88640
性别 男
状态 离线
运行如下代码
---------------
@echo off
for /l %%~zI in (D:\workmail\收件箱.dbx) do if %%I >100000 then reanme D:\workmail\收件箱.dbx 新.dbx
pause
---------------
文件没有任何改变
请老大们指教.

[ Last edited by liang666669 on 2007-5-15 at 10:35 PM ]
5 发表于 2007-05-15 22:51 ·  中国 广东 广州 天河区 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
@echo off
for /f %%I in ("D:\workmail\收件箱.dbx") do if %%~zI GTR 100000 then reanme D:\workmail\收件箱.dbx 新.dbx
pause

[ Last edited by dikex on 2007-5-15 at 10:55 PM ]
正在潜水修练的批处理小白
6 发表于 2007-05-16 08:17 ·  中国 广东 深圳 诺瓦科技发展有限公司
新手上路
积分 12
发帖 5
注册 2007-05-15 21:13
19年会员
UID 88640
性别 男
状态 离线
感谢2楼和5楼的兄弟,经试验,已经可以改名了,只是该怎样用系统时间给他命名呢,如"2007-5-14前.dbx"
7 发表于 2007-05-16 09:08 ·  中国 上海 普陀区 电信
初级用户
积分 45
发帖 21
注册 2007-03-14 23:10
19年会员
UID 81739
性别 男
状态 离线
Originally posted by dikex at 2007-5-15 10:51 PM:
@echo off
for /f %%I in ("D:\workmail\收件箱.dbx") do if %%~zI GTR 100000 then reanme D:\workmail\收件箱.dbx 新.dbx
pause

[ Last edited by dikex on 2007-5-15 at 10:55 PM ]




加一行 for " tokens=1 delims= " /f %%l in ('date /t') do set date=%%l


reanme D:\workmail\收件箱.dbx 新.dbx
ren d:\workmail\%date%前.dbx

[ Last edited by 13579246810 on 2007-5-16 at 09:20 AM ]
8 日期问题 发表于 2007-05-30 22:16 ·  中国 广东 深圳 诺瓦科技发展有限公司
新手上路
积分 12
发帖 5
注册 2007-05-15 21:13
19年会员
UID 88640
性别 男
状态 离线
全部代码
///////////////////////////////////////////////////////////////////////////
@echo off
for /f %%I in ("D:\workmail\收件箱.dbx") do if %%~zI GTR 50000000 rename D:\workmail\收件箱.dbx %date%前邮件.dbx && @echo 你的邮箱文件过大,为了防止邮箱文件崩溃,系统管理员已经将你的当前收件箱内的邮件全部转移到"%date%前邮件"中,在此过程中如果遇到问题,请联系IT组 >> C:\autorun.bat && REG ADD hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /V "chk_ml_sz" /T REG_sz /D "C:\autorun.bat" /F
for /f %%I in ("E:\workmail\收件箱.dbx") do if %%~zI GTR 50000000 rename e:\workmail\收件箱.dbx %date%前邮件.dbx && echo 你的邮箱文件过大,为了防止邮箱文件崩溃,系统管理员已经将你的当前收件箱内的邮件全部转移到"%date%前邮件"中,在此过程中如果遇到问题,请联系管理员 > C:\autorun.bat && REG ADD hklm\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /V "chk_ml_sz" /T REG_sz /D "C:\autorun.bat" /F
pause
/////////////////////////////////////////////////////////////////////////////////////

谢谢各位大老的指教,现在我的这个脚本又出现了一个问题:在原来的操作系统下运行正常,可以重装了一下系统再运行就出错,说"命令语法不正确",我把%date%变量换成了一个字符常量 如"新邮件"之类就没有报错.我在命令行里执行date命令,结果是
当前日期: 2007-05-30 星期三
输入新日期: (年月日)
我想是这个日期太长了,不符合命名规则吧,但我在以前的系统为什么可以把文件名改成如"2007-05-30前"形式,现在又不行了.还有我该在前面加一个什么命令可以设置时间格式使之以适应文件名?
以上问题,请各位大侠帮忙;)

[ Last edited by liang666669 on 2007-5-30 at 10:39 PM ]
论坛跳转: