bat脚本如下
echo on
if "%time:~0,1%"==" " (set backup_file=%date:~0,4%%date:~5,2%%date:~8,2%-0%time:~1,1%%time:~3,2%%time:~6,2%)else (set backup_file=%date:~0,4%%date:~5,2%%date:~8,2%-%time:~0,2%%time:~3,2%%time:~6,2%)
exp username/password@servicename file=c:/backup/%backup_file%.dmp log=c:/backup/%backup_file%.log
setlocal enabledelayedexpansion
rem 假设要删除C盘backup文件夹里面的7天前的文件
set TarDir=C:/backup
echo dt=date()-7> %tmp%/MyDel.vbs
echo s=right(year(dt),4) ^& right( "0 " ^& month(dt),2) ^& right( "0 " ^& day(dt),2)> > %tmp%/MyDel.vbs
echo wscript.echo s> > %tmp%/MyDel.vbs
for /f %%a in ( 'cscript /nologo %tmp%/MyDel.vbs ') do @set DateFlag=%%a
for %%i in (C:/backup/*.*) do (
set t=%%~ti
set FileDate=!t:~6,4!!t:~0,2!!t:~3,2!
if !FileDate! lss %DateFlag% del /f %%i
)
del %tmp%/MyDel.vbs
endlocal
echo off
注意:目标在c盘的backup目录