这里有您需要的部分:
得到7za.exe - 自由,独立的Windows压缩实用程序(谷歌7z命令行,你会发现它)。
使用微软的sqlcmd.exe备份从一个批处理文件数据库(命令行SQL执行包含在MSSQL)
这里是如何命名您的文件: 因为你只想保留最近7天,不要在名称中放入日期,将星期日期的缩写放在文件名中。例如website_mon.zip
这里是一个样例批处理文件。 使用您自己的风险。它没有经过测试。我只是想到了我的头顶。按照代码和意见,并根据需要进行修改。如果没有错别字,我会感到震惊。还要观察添加/修改的dos命令...如果它们包含长文件名,则可能需要添加一些周围的引号。
@echo off
set SHORTDATE=%DATE:~0,3%
set DB_ZIP_FILE=c:\backups\sitedb_%SHORTDATE%.zip
set WWW_ZIP_FILE=c:\backups\siterot_%SHORTDATE%.zip
set WEBSITE_DIR=c:\mysite\wwwroot
set SQL_FILE=c:\temp\backup.sql
rem * get rid of our old backups
rem * this is for our protection ... if there
rem * was a problem with a zip (corruption)
rem * our backups will fail if we don't get rid
rem * of the old zips.
rem *
if exist %DB_ZIP_FILE% del %DB_ZIP_FILE%
if exist %DB_ZIP_FILE% del %WWW_ZIP_FILE%
rem * create a temp file containing the sql script
echo BACKUP DATABASE YOUR_DB_NAME> %SQL_FILE%
echo TO DISK='c:\temp\sitedb-%SHORTDATE%.bak'>>%SQL_FILE%
echo WITH FORMAT, Name='Daily sitedb %SHORTDATE%' >> %SQL_FILE%
echo %DATE% %TIME% backing up SITEDB
call sqlcmd -U YOURUSER -P YOURPASSWORD -i %SQL_FILE% > NUL
rem ** zip the files - we remove the old one before starting
call 7za a -tzip %ZIP_FILE% c:\temp\sitedb-%SHORTDATE%.bak
rem ** delete the bak file
del c:\temp\sitedb-%SHORTDATE%.bak
rem ** now zip up our web site directory
7za a -tzip -r %WEBSITE_DIR% %WWW_ZIP_FILE%
嗨丹, 非常感谢您的回复。 我会尝试使用它并回复给您。 但是,“rem *”是什么意思,因为我以前从未使用过? – swade1987
rem只是一条评论(从BASIC中盗取,反之亦然)。它只是用来记录脚本。 –