win- oracle使用exp定时备份脚本

@echo off 
echo ================================================ 
echo  Windows环境下Oracle数据库的自动备份脚本
echo  1. 使用当前日期命名备份文件。
echo  2. 自动删除5天前的备份文件和日志文件。
echo ================================================
:: 以“YYYYMMDD”格式取出当前时间。
set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%
echo %BACKUPDATE%
:: 设置用户名、密码和要备份的数据库
set USER=test1
set PASSWORD=test1
set DATABASE=orcl_44.44.44.44
:: 创建备份目录。
set OraBackPATH=D:\Temp\back
set OraLogPATH=%OraBackPATH%\\logs
:: 判断文件是否存在,不存在则创建
if not exist %OraBackPATH% md %OraBackPATH%
if not exist %OraLogPATH% md %OraLogPATH%

:: 执行备份
echo 开始备份
exp %USER%/%PASSWORD%@%DATABASE%  file=%OraBackPATH%\%USER%_%BACKUPDATE%.dmp log=%OraLogPATH%\log_%BACKUPDATE%.log

:: 文件备份成功后,再删除7天前的备份文件和日志文件,以保证数据的完整性
set fileName=%OraBackPATH%\%USER%_%BACKUPDATE%.dmp
if exist %fileName% (
    echo 开始删除7天前的备份文件和日志文件
	forfiles /p "%OraBackPATH%" /s /m *.* /d -5 /c "cmd /c del @path"
	forfiles /p "%OraLogPATH%" /s /m *.* /d -5 /c "cmd /c del @path"
	echo 备份文件和日志文件删除成功
) else (
    echo  %fileName%备份为成功,备份文件不存在,不执行删除7天前的备份文件和日志文件
)

:: 强制等待10秒,只能按下CTRL+C来跳过
TIMEOUT /T 10 /NOBREAK
echo over