标题: [文本处理] [已解决]批处理如何实现备份到E盘并删除D盘备份过的邮件 [打印本页]
作者: dong1977 时间: 2009-6-24 16:13 标题: [已解决]批处理如何实现备份到E盘并删除D盘备份过的邮件
最近由于自已的误操作,造成一部分邮件丢失。所以,想弄一个备份邮件的BAT,我是想把D盘live mail文件夹中的09年6月24之前的邮件备份到E盘(在E盘以计算机名和日期文件夹自动创建备份文件夹)。再删除D盘备份过的文件(也就是09年6月24日之前的邮件)。我尝试着写了一个,并参考论坛上的一些代码,进行修改了下。但是没达到效果,请大家帮我看看错在哪?
谢谢!- @echo off
- if %date:~8,2%==18 goto backup
- goto dateerror
- :backup
- taskkill /im wlmail.exe /f
- set pcname=%computername%
- set dir1=d:\live mail
- set dir2=E:\%pcname%\
- setlocal enabledelayedexpansion
- for /f "tokens=*" %%a in ('dir f:\zx /b') do (
- set ti=%%~ta
- if "!ti:~0,10!"=="2009-06-18" copy "%%~fa" f:\123\ /y
- )
- rd /s /q "%dir2%\%rdel%"
- set dir2=%dir2%%date:~,10%\
- cd E:\%pcname%\
- title Live 邮件备份@%date:~,10%
- echo.
复制代码
[ 本帖最后由 dong1977 于 2009-6-25 14:35 编辑 ]
作者: namejm 时间: 2009-6-24 16:17
原始邮件的文件名长什么样?你所希望的日期究竟是什么格式……细节决定成败,请提供具体细节,并更新至顶楼。
作者: batman 时间: 2009-6-24 16:18
在群上谈了n久才知楼主最终目的,代码如下:- @echo off
- if not exist e:\%computername%-%date:~,-4% md e:\%computername%-%date:~,-4%
- 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 |