Board logo

标题: [文本处理] [已解决]批处理如何实现备份到E盘并删除D盘备份过的邮件 [打印本页]

作者: dong1977    时间: 2009-6-24 16:13     标题: [已解决]批处理如何实现备份到E盘并删除D盘备份过的邮件

最近由于自已的误操作,造成一部分邮件丢失。所以,想弄一个备份邮件的BAT,我是想把D盘live mail文件夹中的09年6月24之前的邮件备份到E盘(在E盘以计算机名和日期文件夹自动创建备份文件夹)。再删除D盘备份过的文件(也就是09年6月24日之前的邮件)。我尝试着写了一个,并参考论坛上的一些代码,进行修改了下。但是没达到效果,请大家帮我看看错在哪?
谢谢!
  1. @echo off
  2. if %date:~8,2%==18 goto backup
  3. goto dateerror
  4. :backup
  5. taskkill /im wlmail.exe /f
  6. set pcname=%computername%
  7. set dir1=d:\live mail
  8. set dir2=E:\%pcname%\
  9. setlocal enabledelayedexpansion
  10. for /f "tokens=*" %%a in ('dir f:\zx /b') do (
  11. set ti=%%~ta
  12. if "!ti:~0,10!"=="2009-06-18"  copy "%%~fa" f:\123\ /y
  13. )
  14. rd /s /q "%dir2%\%rdel%"
  15. set dir2=%dir2%%date:~,10%\
  16. cd E:\%pcname%\
  17. title Live 邮件备份@%date:~,10%
  18. echo.
复制代码

[ 本帖最后由 dong1977 于 2009-6-25 14:35 编辑 ]
作者: namejm    时间: 2009-6-24 16:17

  原始邮件的文件名长什么样?你所希望的日期究竟是什么格式……细节决定成败,请提供具体细节,并更新至顶楼。
作者: batman    时间: 2009-6-24 16:18

在群上谈了n久才知楼主最终目的,代码如下:
  1. @echo off
  2. if not exist e:\%computername%-%date:~,-4% md e:\%computername%-%date:~,-4%
  3. for /f "delims=" %%a in ('dir /s /b "d:\live mail\*.eml"') do if "%%~ta" leq "2009%date:~4,1%06%date:~4,1%24" move /y "%%a" e:\%computername%-%date:~,-4%\
复制代码

[ 本帖最后由 batman 于 2009-6-24 16:40 编辑 ]
作者: dong1977    时间: 2009-6-25 14:34

问题已解决,
谢谢!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2