我正在尝试运行与此脚本(example)类似的脚本,但是该脚本无法正确运行。 txt文件已成功生成,并且数据库名称逐行显示,但是备份数据库时,将生成一个大文件,而不是每个数据库一个文件。我的txt中包含30个名称,因为有30个数据库。
@echo off
:: Update variable date environment
set today=%date:~0,2%-%date:~3,2%-%date:~6,4%
:: Set folder root of backup files to send to network and to GDRIVE
set BACKUPPATHROOT=%systemdrive%\TMPSQL
:: Create local folder from date
mkdir %BACKUPPATHROOT%\%today% >nul 2>&1
:: Set local folder to save backup files
set BACKUPPATH=%BACKUPPATHROOT%\%today%
:: Set SQL Server location
set SERVERNAME=localhost
:: Get password of backup file compress
set PSWDZIP=123456
:: Build a list of databases to backup
set DBList=%BACKUPPATH%\SQLDBList.txt
SqlCmd -E -S %SERVERNAME% -h-1 -W -Q "SET NoCount ON; SELECT Name FROM sys.databases WHERE [Name] NOT IN ('master','model','msdb','tempdb')" > "%DBList%"
:: Backing UP
For /f "tokens=*" %%i in (%DBList%) do (
set BACKUPFILENAME=%BACKUPPATH%\%%i.bak
echo Fazendo backup do banco de dados %%i
sqlcmd -E -S %SERVERNAME% -Q "BACKUP DATABASE [%%i] TO DISK=N'%BACKUPFILENAME%' WITH NOFORMAT, NOINIT, NOREWIND, NOUNLOAD"
7za a -r -tzip -bso0 -bsp0 -sdel -p%PSWDZIP% %BACKUPFILENAME%.zip %BACKUPFILENAME%
echo.
)
有人可以帮助我确定错误吗?
txt文件的第一行:
MYDBTEST
MYDBTEST_ADM
DBTEST
DBTEST_ADM
MYDBZBX
MYDBZBX_OLD