|
liang666669
新手上路
积分 12
发帖 5
注册 2007-5-15
状态 离线
|
『楼 主』:
求助大侠:写一个自动处理邮箱文件过大的批处理程序
问题:小弟是企业电脑技术员,公司员工用outlookexpress收信,限于oE软件本身的能力,如果一个收件箱文件超过一定容量就会极大影响oe速度,甚至不能打开oe。邮件文件都在D:\workmail\下。
思路:小弟想做一个开机脚本,每次开机时自动检测收件箱文件(收件箱.dbx)的大小是否超过400M,如果是的话,将这个文件改名成系统当前日期的(2007-5-15日前.dbx).
困惑:可以用dir获得文件大小,但该怎样做比较?
请各位高手指教.
|
|
2007-5-15 21:53 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
|
2007-5-15 21:55 |
|
|
liang666669
新手上路
积分 12
发帖 5
注册 2007-5-15
状态 离线
|
『第
3 楼』:
什么意思,小弟对脚本没有什么研究,help也看得头疼,还要麻烦老大详细解释一下,或放出代码,感谢
[ Last edited by liang666669 on 2007-5-15 at 10:17 PM ]
|
|
2007-5-15 22:13 |
|
|
liang666669
新手上路
积分 12
发帖 5
注册 2007-5-15
状态 离线
|
『第
4 楼』:
运行如下代码
---------------
@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 ]
|
|
2007-5-15 22:31 |
|
|
dikex
高级用户
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31
状态 离线
|
『第
5 楼』:
@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 ]
|
正在潜水修练的批处理小白 |
|
2007-5-15 22:51 |
|
|
liang666669
新手上路
积分 12
发帖 5
注册 2007-5-15
状态 离线
|
『第
6 楼』:
感谢2楼和5楼的兄弟,经试验,已经可以改名了,只是该怎样用系统时间给他命名呢,如"2007-5-14前.dbx"
|
|
2007-5-16 08:17 |
|
|
13579246810
初级用户
积分 45
发帖 21
注册 2007-3-14
状态 离线
|
『第
7 楼』:
Quote: | 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 ]
|
|
2007-5-16 09:08 |
|
|
liang666669
新手上路
积分 12
发帖 5
注册 2007-5-15
状态 离线
|
『第
8 楼』:
日期问题
全部代码
///////////////////////////////////////////////////////////////////////////
@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 ]
|
|
2007-5-30 22:16 |
|