2014-09-16 3 views
0

Я написал пакетный файл, который создает резервные папки с компьютера. Резервная копия хранится на сервере, например \ server \ backup \ pc1 \ folder1 \ today Теперь сценарий резервного копирования работает каждый день один раз. На 11-й день его одиннадцать подпапок unter folder1. теперь каждый день, когда он снова создает резервную копию и создает папку одиннадцать, он должен автоматически удалять oldeset, чтобы снова было десять резервных копий.пакет - удалять папки старше 10 дней

Я попытался сделать это с помощью forfiles.exe (встроенный в окна). но с полными папками это не сработало.

Вы можете мне помочь?

Спасибо!

+0

какие полные папки? – lordkain

+0

Я имел в виду папки. с файлами он работает, папки нет. – fuuman

+0

описание товара oke. Я была такая же проблема. Сделал приложение для приложений .net, но больше не имеет его – lordkain

ответ

1
@echo off 
    setlocal enableextensions disabledelayedexpansion 

    pushd "d:\somewhere\backups" && (
     for /f "skip=10 delims=" %%a in (
      'dir /b /ad /tc /o-d' 
     ) do echo rmdir /s /q "%%~fa" 
     popd 
    ) 

Она просто в указанную папку, получить список дат создания по убыванию папок, пропустите первую десятку и удалить остальные

Команды rmdir отображаются только на консоли. Если выход правильный, удалите команду echo

+0

Это действительно приятно. Но почему dir/o-d? Это означает, что самые старые находятся на вершине списка, и он удалит самую новую! Или я ошибаюсь? – fuuman

+0

@fuuman, в порядке возрастания даты, порядок от старшего до более нового. В порядке убывания даты список идет от более нового до более старого. Поскольку 'for' будет пропущен с начала списка, нам нужны новые папки в начале. –

+0

Ну ладно, здорово. Но что означает это «%% ~ fa»? И как будет эта строка для удаления файлов вместо папок? 'do del/q "%% ~ fa"' не работал для меня ..: \ – fuuman

0

Какую версию Windows вы используете? Это работает с XP & выше:

RMDIR [/S] [/Q] [drive:]path 
RD [/S] [/Q] [drive:]path 

/S Удаляет все каталоги и файлы в указанной директории в дополнение к самой директории. Используется для удаления дерева каталогов.

/Q Тихий режим, не спрашивайте, нормально ли удалять дерево каталогов с помощью/S.

Для получения дополнительной информации, смотрите здесь: http://www.computerhope.com/rmdirhlp.htm

+0

Пожалуйста, внимательно прочитайте вопрос. Ваш ответ ** не ** отвечает на исходный вопрос. Он не обращается к удалению каталогов старше 10 дней. – DavidPostill

Смежные вопросы