Aqui esta um exemplo de script para realizar backup do SQL Server
DECLARE @date NVARCHAR(20)
DECLARE @path NVARCHAR(100)
DECLARE @sql NVARCHAR(1000)
-- Formata a data e hora atuais no formato desejado
SET @date = REPLACE(CONVERT(NVARCHAR, GETDATE(), 120), ':', '_')
SET @date = REPLACE(@date, ' ', '_')
-- Define o caminho do arquivo de backup com a data e hora
SET @path = N'E:\Backup\Backup_Banco_' + @date + '.BAK'
-- Cria o comando de backup
SET @sql = 'BACKUP DATABASE [BANCO] TO DISK = ''' + @path + ''' WITH NOFORMAT, NOINIT, NAME = N''Full Database Backup'', SKIP, NOREWIND, NOUNLOAD, STATS = 10'
-- Executa o comando de backup
EXEC(@sql)
Este script salva o Backup em E:\Backup\Backup_Banco_$DATA.BAK isto é, concatena a data atual no nome do arquivo… então, utilizando este exemplo de script de backup, sua pasta e:\backup vai ficar CHEIA!
Para evitar isso, podemos executar este script SQL através de um script .bat, assim o script bat irá remover as copias antigas e executar uma copia nova
@ECHO OFF
SET backuppath=E:\Backup
SET scriptfile=C:\caminho\para\backup_script.sql
:: Executa o script de backup do banco de dados
sqlcmd -S NomeServidor -U Usuario -P Senha -i %scriptfile%
:: Exclui arquivos de backup mais antigos que 7 dias
FORFILES /P %backuppath% /M Backup_Banco_*.BAK /D -7 /C "cmd /c del @path"
:: Nota: O comando FORFILES acima exclui todos os arquivos que começam com 'Backup_Banco_' e têm a extensão '.BAK' no diretório especificado, que são mais antigos que 7 dias.