Еще один вариант. Удаляет старые логи вместе с папками.
Особенность - оставляет указанное количество папок с логами не по дате, а последние по количеству. Т.е. сохраняет просто 10 последних архивов, а не за последние 10 дней (в случае, если бэкап по какой-либо причине не прошел, то архивных копий за последние 10 дней может оказаться значительно меньше, а то и вообще не оказаться...), а все остальное удаляет:
Код: Выделить всё
@echo off
SetLocal EnableExtensions
set BackUp=F:\share\databus
set Num=600
pushd %BackUp%
for /f "tokens=* delims=" %%D in ('dir /ad /b /o-d') do call :Proceed "%%D"
popd
exit
:Proceed
if not %Num%==0 set /a Num-=1&exit /b
echo %date% %time%: Erase %1>>%~dpn0.log
rd /s /q %1 2>nul >nul
exit /b
Лог выполнения записывает в txt файл с таким же именем как bat файл.