這裏有您需要的部分:
得到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中盜取,反之亦然)。它只是用來記錄腳本。 –