|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Удаление файла по дате в Имени |
|
Любой язык - Удаление файла по дате в Имени
|
Новый участник Сообщения: 3 |
Профиль | Отправить PM | Цитировать Привет
Нужна помощь в создании скрипта, который удалял бы файлы, по дате а имени (формата название_yyyymmdd.bd) Суть в том, что бы оставлять 3-5 самых свежих файла (по дате в названии) остальные удалять перепробовал совмещать различные варианты, но для примера в CMD\BAT не хочет считывать имя @echo off SetLocal EnableExtensions :: папка, с файлами вида yyyymmdd для удаления set "Folder=C:\temp\test"& set "rs=bd" pushd "%Folder%" For /F "delims=" %%a in ('forfiles /d -3 /m "*%DATE:-4%%DATE:~3,2%%DATE:~6,2%.bd"') do if not defined "%%a" echo del /f /q "%rs%%%a" exit /b главное, что бы работало спасибо |
|
Отправлено: 23:19, 14-08-2019 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 12:54, 15-08-2019 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать Iska, Простите великодушно, спешка, нет у Вас двойного цикла, а жена гонит на охоту на базар за мамонтом на обед ...
|
------- Отправлено: 13:00, 15-08-2019 | #12 |
Ветеран Сообщения: 2798
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 13:07, 15-08-2019 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать megaloman, спасибо, ясно, сочувствую.
Цитата Charg:
Нам нужно удержать значение некоей конкретной даты/времени привязанным к конкретному файлу. И дата создания, и дата последней модификации файла для этого не годятся (даже если это именно одно из них по сути), поскольку оригинальные даты в любой момент могут быть утрачены неловким или бессознательным движением руки, в то время, как потребное значение даты/времени, тупо вставленное в имя файла, для утраты требует исключительно сознательных усилий. |
|
Отправлено: 14:23, 16-08-2019 | #14 |
Ветеран Сообщения: 2798
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Да, чисто технически, есть возможность изменить файл так чтобы дата изменения обновилась а сам бэкап остался рабочим и валидным - но стоит ли предполагать что над бэкапом произвели именно такие действия? Вопрос не совсем однозначный но, имхо, ответ - нет, бэкап перестал быть бэкапом, во всяком случае на момент той даты которая написана в его имени. |
|
Отправлено: 15:05, 16-08-2019 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Charg:
А чтобы быть уверенным в его валидности — тут уже другие методы нужны: блокировка от изменений, контрольные суммы и прочее. |
|
Отправлено: 15:27, 16-08-2019 | #16 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Имхо, еще лучше так: @Echo Off Call :DelData "Z:\Box_ARC\Название бэкапа базы_20??????.bd" 5 Exit /B :DelData FOR /F "usebackq skip=%2 delims=" %%f IN (`2^>nul Dir %1 /B /A:-D /O:-N`) DO Echo Del "%~dp1%%f" Exit /B Цитата Iska: @echo off setlocal enableextensions enabledelayedexpansion set sSourceFolder=C:\Мои проекты\0271\Source for /f "usebackq skip=5 delims=" %%i in ( `2^>nul dir /b /a:-d /o:-n "%sSourceFolder%\название_*.bd"` ) do echo del /f /q "%sSourceFolder%\%%~i" endlocal exit /b 0 Оба Варианта работают, Спасибо По датам в атрибутах Создания: Сам бекап настраивал другой пользователь, грубо говоря, но разных серверах стоит батник, который раз в сутки копирует на один сервер в соответствующую папку файл базы, сохраняя на конечном сервере с датой текущей в имени. И каким то образом, дата создания и изменения остаются у всех "Бекапов" одинаковыми, и не меняются. Если бы они менялись, то на основе даты изменения и создавал бы батник, но тут то и был зарыт камень преткновения и задачу поставили смотреть именно в дату в имени файла. |
Последний раз редактировалось kasab, 17-08-2019 в 10:45. Отправлено: 10:17, 17-08-2019 | #17 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Раскидать файлы по папкам согласно дате в имени файла | spkvvs | Скриптовые языки администрирования Windows | 17 | 24-01-2024 16:03 | |
VBS/WSH/JS - VBS удаление файлов в папке по определенному имени и дате старше n | Vooodi4356 | Скриптовые языки администрирования Windows | 5 | 25-03-2018 14:02 | |
CMD/BAT - [решено] Удаление старых файлов по дате и имени, если их больше n | NinjaScript | Скриптовые языки администрирования Windows | 2 | 04-03-2015 14:27 | |
CMD/BAT - Удаление файлов по дате | interminable | Скриптовые языки администрирования Windows | 1 | 07-06-2012 15:48 | |
CMD/BAT - Удаление файлов по дате | ADGJMPTW | Скриптовые языки администрирования Windows | 1 | 10-10-2010 20:08 |
|