rem @echo off
::/停止sql服务/
echo 正在停止PUBWIN服务...
net stop "SQLSERVERAGENT">nul
net stop "MSSQLSERVER">nul
echo 正在备份数据库文件...
::/建立当前时间的备份目录/
Set dd=%date:~0,10%
Set tm1=%time:~0,2%
Set tm2=%time:~3,2%
Set tt=%tm1%点%tm2%分
md "d:\数据库备份\%dd%_%tt%"
::/复制数据库到备份目录/
copy e:/database/ "d:\数据库备份\%dd%_%tt%\"
::/只保留最近三次备份的数据库
dir /o:-d d:\数据库备份>1.txt
for /F "skip=10 tokens=4" %%a in (1.txt) do @if exist d:\数据库备份\%%a rd /s /q d:\数据库备份\%%a
pause
前面一部分是停止服务的copy文件,后面自动删除旧备份这一些是借鉴前辈的文章,思路是先dir按由新到旧的时间显示d盘“数据库备份”这个文件夹,然后把结果输出到1.txt,然后分析1.txt,我的1.txt内容如下:
------------------------------分隔符-----------------------------------------------
驱动器 D 中的卷没有标签。
卷的序列号是 3886-56C7