Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 29.10.2018
Сообщений: 16

Создание архива с условием удаления старых записей

17.02.2020, 08:40. Показов 1321. Ответов 1

Студворк — интернет-сервис помощи студентам
Здравствуйте! Мне нужно создать архив с помощью первого бат-файла и чтобы оставались только 5 последних архивов, а остальные удалялись. А вторым бат-файлом нужно последний созданный архив разархивировать в указанную директорию.
Первый бат архив написал, но не работает удаление старых, и соответственно не получается сделать такой же алгоритм для разархивации крайнего архива. Так же что бы проверить работоспособность нужно создать файл в блокноте DB_Updat.lst и записать туда полный путь до файла который будете архивировать.
Пожалуйста помогите решить эту задачу! Код ниже:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SET Arc=5
 
rem Если указать путь до рабочего стола или любой другой без кириллицы и пробелов, то архивация работает. Для рабочего стола указывать без кавычек
 
SET OutDir="Z:\MarkGeo\Geo\Базовые_файлы_мм\Обновление БД" 
IF NOT EXIST "%OutDir%" MD "%OutDir%"
SET ArcName=%OutDir%\BD_Update_%date%.zip
start /wait WinRAR a -y -m5 -ep -dh "%ArcName%" @DB_Updat.lst
 
SET Index=0
 
rem Не удаляет старые архивы.... Проверить это можно создав копии архива в папке и заново запустить батник.
 
FOR /f "tokens=1" %%i IN DIR /A /B /T:C "%OutDir%"
DO SET /a Index=+1 IF Index LEQ %Arc% 
else RMDIR /S/Q "%OutDir%\%%i"
Добавлено через 3 часа 16 минут
Переделал все получилось вот так:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
set Arc=5
set OutDir=C:\Users\user\Desktop\mmm
if not exist "%OutDir%" md "%OutDir%"
set h=%time:~0,2%
set h=%h: =0%
set FullBackupDir=%OutDir%\%date%_%h%%time:~3,2%%time:~6,2%\
md %FullBackupDir%
set ArcName=%FullBackupDir%\BD_Update_%date%.zip
set DB_Update=@C:\Users\user\Desktop\DB_Updat.lst
start /wait WinRAR a -y -m5 -ep -dh %ArcName% %DB_Update%
 
for /f "tokens=* delims=" %%D in ('dir %OutDir% /ad /b /o-d') do (
    if not %%D=="" (
        if not Arc==0 (
            set /a Arc-=1
        ) else (
            rd /s /q %OutDir%%%D 2>nul >nul
        )
    )
)
Но все равно не работает удаление каталогов....И вот второй батник, чтобы извлечь последний созданный архив, но должным образом не работает, только выводит как "текст" название последнего созданного каталога с архивом.

Windows Batch file
1
2
3
4
set InDir=C:\Users\user\Desktop\mmm
set OutDir=C:\Users\user\Desktop\mmm!!!
for /f "delims=" %%d in ('dir /b/s/a-d/od "%InDir%\*.*"') do set "$d=%%~nxd %%~td"
start /wait WinRAR e -y  %$d% %OutDir%
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.02.2020, 08:40
Ответы с готовыми решениями:

Удаление старых записей
Этот php- запрос правильно написан чтоб удалить все записи из таблицы mail ее поля time которые старше 1 суток? $sql2 =...

Добавление новых записей в БД на основе старых
Ребята, такой вопрос! Я реализовал показ расписания и добавление в него. Чтобы добавить расписание на четную неделю, за это отвечает в...

Архивация (перенос в другую таблицу) старых записей
Необходимо для ускорения работы архивировать записи, дата создания (одно из полей) которых больше месяца, при этом архивирвать надо разные...

1
Джоуи
 Аватар для Joey
1083 / 645 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
19.02.2020, 18:03
Цитата Сообщение от MaerkovPO Посмотреть сообщение
rd /s /q %OutDir%%%D
не успел вчитаться в весь код, спешу, но на всякий: не забыли сюда backslash "" вставить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.02.2020, 18:03
Помогаю со студенческими работами здесь

StreamFile Не удается очистить конец файла от старых записей
Всем доброго времени суток. Проблема в том что при ПЕРЕЗАПИСИ файла он у меня записывает все нормально, но остаются данные от предыдущего...

Распаковка архива автоматического сборщика логов, для удаления вируса с компьютера
Здравствуйте, у меня возникла такая проблема, как "Monitoring by power spy". По этой инструкции...

Написать командный файл для копирования, разархивирования на рабочий стол и удаления архива
помогите пожалуйста написать командный файл. 1)В локальном диске с:\Temp сохранен архив с файлами(.exe, .dat, .lnk) .Нужно...

Добавление новых записей в регистр по цене Номенклатуры вместо перезаписи старых.
при записи номенклатуры данные в регистр должны добавляться а не перезаписывать старые данные. Должна быть история цен. А вот, что у меня...

Страницу записей отличающуюся по стилям от архива
При создании страницы блога (вывод записей категории), столкнулась с проблемой что не могу сделать разный вывод содержимого краткой новости...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru