中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-04 18:25
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 求助大侠:写一个自动处理邮箱文件过大的批处理程序
可打印版本  856 / 7
第1楼 liang666669 发表于 2007-05-15 21:53
新手上路 发帖 5 积分 12
求助大侠:写一个自动处理邮箱文件过大的批处理程序
问题:小弟是企业电脑技术员,公司员工用outlookexpress收信,限于oE软件本身的能力,如果一个收件箱文件超过一定容量就会极大影响oe速度,甚至不能打开oe。邮件文件都在D:\workmail\下。
思路:小弟想做一个开机脚本,每次开机时自动检测收件箱文件(收件箱.dbx)的大小是否超过400M,如果是的话,将这个文件改名成系统当前日期的(2007-5-15日前.dbx).
困惑:可以用dir获得文件大小,但该怎样做比较?
请各位高手指教.
第2楼 vkill 发表于 2007-05-15 21:55
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
for .... %%~zi
第3楼 liang666669 发表于 2007-05-15 22:13
新手上路 发帖 5 积分 12
什么意思,小弟对脚本没有什么研究,help也看得头疼,还要麻烦老大详细解释一下,或放出代码,感谢

[ Last edited by liang666669 on 2007-5-15 at 10:17 PM ]
第4楼 liang666669 发表于 2007-05-15 22:31
新手上路 发帖 5 积分 12
运行如下代码
---------------
@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楼 dikex 发表于 2007-05-15 22:51
高级用户 发帖 366 积分 788
@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楼 liang666669 发表于 2007-05-16 08:17
新手上路 发帖 5 积分 12
感谢2楼和5楼的兄弟,经试验,已经可以改名了,只是该怎样用系统时间给他命名呢,如"2007-5-14前.dbx"
第7楼 13579246810 发表于 2007-05-16 09:08
初级用户 发帖 21 积分 45
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楼 liang666669 发表于 2007-05-30 22:16
新手上路 发帖 5 积分 12
日期问题
全部代码
///////////////////////////////////////////////////////////////////////////
@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 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023