Тема: CMD/BAT:Ежедневная архивация, с последующим удалением лишних архивов
Всем привет.
У меня есть вот такой скрипт. Он каждый день делает архив 1С и должен делать не более 30, потом старые удалять. Скрипт работает, но не удаляет сам старые архивы. Уже замучился искать ошибку, пришлось прийти к вам на форум, может тут помогут
@echo off
rem Задается временный каталог
set temp_dir=d:\sql_backup\tmp
rem Задается имя БД
set dbname=test
rem Задается каталог куда скрипт SQL поместит бэкап БД
set backup_dir=d:\sql_backup\%dbname%
set backup_file=%temp_dir%\%dbname%.dat
rem set query="-S SERVER -Usa -Ptest22 -i d:\sql_backup\test.sql -o d:\sql_backup\Results.txt"
set query="BACKUP DATABASE [%dbname%] TO DISK = '%backup_file%' WITH INIT"
rem Задается каталог размещения сформированных rar-архивов
rem set workdir=d:\sql_backup\%dbname%
rem Задается расположение архиватора rar.exe (консольная версия)
set archexe="c:\Program Files (x86)\7-Zip\7z.exe"
rem Задается количество последних сохраняемых архивов
set archnum=30
if not exist %backup_dir% md %backup_dir%
rmdir /s /q %temp_dir%
md %temp_dir%
rem - авторизация Windows
rem sqlcmd.exe -E -S SRV -Q %query% >%temp_dir%\backup.log
rem - авторизация SQL
"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe" -SSERVER -Usa -Ptest22 -Q %query%
rem создаем дату
set now=%TIME:~0,-3%
set now=%now::=.%
set now=%now:=0%
set now=%DATE:~-4%.%DATE:~3,2%.%DATE:~0,2%_%now%
%archexe% a %backup_dir%\%dbname%_%now%.7z %backup_file%
IF NOT ERRORLEVEL 0 echo "Archiving DB Error" >%temp_dir%\backup.log
dir /b /o-d %workdir%\*.7z more +%archnum% > %temp_dir%\delete.lst
for /F %%f in (%temp_dir%\delete.lst) do del %workdir%\%%f
del %temp_dir%\delete.lst
echo Backup complete! %errorlevel% >> %temp_dir%\backup.log
Заранее спасибо за любую подсказку!