![]() |
Bat ограничивающий кол-во хранимых каталогов.
Добрый день, итак расскажу по подробнее, что именно хочу сделать и , что не получается.
Данный скрипт, выполняется каждый день и должен 1. На win2008 делать SystemStateBackup на локальный диск (D) 2. Проверять кол-во бэкапов в указанной папке, на локальном компе (не более 1-го). Путь выглядит так - D:\WindowsImageBackup\server\SystemStateBackup в которой находятся папки с датой, которая соответствует дате бэкапа. Если там находится более 1 бэкапа, то удалить старые бэкапы(папки и их содержимое), оставив тока самый свежий. 3. Проверить папку для бэкапов на удаленной шаре, ограничение на кол-во бэкапов не более 5, опять таки если более -удалить наиболее старые. 4.Копировать с локального хранилища бэкап (пункт2) на удаленную шару(пункт3) Проблема в следующем, когда скрипт находит что папок больше указанного кол-ва, он пытается их удалить, НО выводит потом сообщение - "ПАПКА НЕ ПУСТА", тоесть для теста создал неск пустых папок, он их удалил норм, а если там уже чтото содержится то выводит данное сообщение. Прошу вас помочь найти и исправить ошибку. Итак вот сам код Код:
@echo off |
Цитата:
Ошибка - [решено] Не удается удалить [название папки]. Папка не пуста. |
Как-то сложновато у Вас ... Вроде бы для разных папок делается одно и то же действие, а Вы зачем-то пишите два куска для этого. Вот батник, который заменяет Ваши вторую и третью части скрипта: работает одна и та же подпрограмма LimCountDir. В ней сначала подсчитываем число папок, затем сколько папок надо удалить, затем по порядочку удаляем их, начиная с самых старых.
Процедура в указанной папке (Where) оставляет указанное кол-во самых свежих подпапок (HowMuch). для сортировки по датам используется ключ /O команды Dir С Вашим копированием не разбирался, если бы Вы просто описали, по какому принципу образуются имена файлов (директорий) - было бы проще. Код:
@Echo off |
Цитата:
Код:
FOR /F "usebackq skip=%2 delims=" %%i IN (`Dir /B /A:D /O:-D "%~1\"`) DO RD /S/Q "%~1\%%i" |
Цитата:
Цитата:
Код:
@Echo off |
Спасибо Вам большое, опробовал ваш скрипт megaloman, все отлично работает!
Благодарю всех. |
Цитата:
Цитата:
Цитата:
Код:
@Echo off |
kiripanda,Очевидно
Цитата:
Код:
Echo off |
Время: 10:46. |
Время: 10:46.
© OSzone.net 2001-