|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление папки по дате |
|
CMD/BAT - [решено] Удаление папки по дате
|
Новый участник Сообщения: 3 |
Профиль | Отправить PM | Цитировать Всем добрый день!
Имеются папки - архивы за каждый день. Названия папки - это дата создания архива. Подскажите пожалуйста, каким образом можно удалить все папки, дата создания которых больше, например, 10-ти дней. Если нельзя удалить по названию, может можно удалить по дате создания... Спасибо! |
|
Отправлено: 16:32, 06-08-2010 |
Старожил Сообщения: 168
|
Профиль | Отправить PM | Цитировать Obnin, формат даты папок 25.12.10 или 25\12\10? пожалуйста пример.
|
------- Отправлено: 17:13, 06-08-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Есть маленькая сложность - если Вы желаете отмерить ИМЕННО 10 ДНЕЙ - Вам придется столкнуться с расчетом календаря, эта тема здесь несколько раз поднималась и если честно, мне ни одно решение этой задачи не показалось "красивым", но да это "имхо". Если упростить Вашу задачу и сохранять просто 10 последних архивов, а не за последние 10 дней (в случае, если бэкап по какой-либо причине не прошел, то архивных копий за последние 10 дней может оказаться значительно меньше, а то и вообще не оказаться...), то такие вопросы здесь тоже поднимались и решение очень просто:
* сортировка каталогов не по названию даты, а именно по дате выбрана потому, что неизвестен формат, в котором записана дата каталогов: чаще всего каталоги называют в виде "DD.MM.YYYY", т.к. это более простой способ, хотя для наглядности гораздо удобнее создавать каталоги в виде "YYYY-MM-DD" - хотя такое имя еще надо получить... (например так: %date:~6,4%-%date:~3,2%-%date:~0,2%) |
------- Отправлено: 17:16, 06-08-2010 | #3 |
Пользователь Сообщения: 140
|
Профиль | Отправить PM | Цитировать Obnin,
Просто огромный плюс свойств FSO - это работа с датами обьектов: Option Explicit Dim FSO, Folder, subFolder Dim strSource Dim intErrLevel strSource = "F:\disk" ' папка содержащая каталоги для проверки intErrLevel = 0 Set FSO = WScript.CreateObject("Scripting.FileSystemObject") If FSO.FolderExists(strSource) Then Set Folder = FSO.GetFolder(strSource) For Each subFolder In Folder.subFolders if DateDiff("D", subFolder.DateLastModified, Now) > 10 Then subFolder.Delete End If Next Else WScript.Echo "папка " & strSource & " не найдена." intErrLevel = 1 End If Set FSO = Nothing WScript.Quit intErrLevel |
Последний раз редактировалось deepred, 07-08-2010 в 21:31. Отправлено: 18:14, 06-08-2010 | #4 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Вариант NiOl отлично работает! Огромное спасибо!
А вариант deepred сильно ругается на отсутствие компонент... Еще один малюсенький вопросик. Все это дело планируется еще и архивировать, причем на Win64. На Win32 я скопировал Rar.exe из папки установки winrar, и использую его. Будет ли он работать на 64bit(сейчас проверить не могу)? Если нет, то что посоветуете? относительно "А вариант deepred сильно ругается на отсутствие компонент..." пишет: |
|
Отправлено: 13:31, 09-08-2010 | #5 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Цитата Obnin:
Про 64-битную ОС я не скажу ничего, но Вам будет вполне достаточно указать путь к установленному архиватору (на каждой машине), а не таскать его со скриптом. Может быть придется переползти на zip - существуют бесплатные, смд реализации этого архиватора... |
|
------- Отправлено: 13:51, 09-08-2010 | #6 |
Пользователь Сообщения: 140
|
Профиль | Отправить PM | Цитировать Obnin,
М-да, не задачка вышла - как-то не догадался подписать, что код является сценарием WSH (Windows Script Host) и написан на языке VBScript,что NiOl совершенно верно определил. По поводу Rar.exe у меня он замечательно работает на машине с архитектурой x64 под WinVista HP 64bit, думаю и у вас пробем не возникнет, к тому разработчик WinRar "обещал" полную совместимость... Цитата NiOl:
|
|
Отправлено: 14:33, 09-08-2010 | #7 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Большое всем спасибо!
Потестим, посмотрим... |
Отправлено: 14:49, 09-08-2010 | #8 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать NiOl, спасибо за скрипт, очень помог. Но было бы замечательно, если бы помогли разобраться, как сделать чтобы скрипт работал на несколько разных дисков и директорий, а не на одну. Вот у меня 2 раздела жесткого куда записываются архивы и на каждом разделе по 3+ директории. Как изменить скрипт чтобы можно было прописывать несколько директорий? Или есть еще какие-то варианты?
В общем подводя итог - скрипт работает на отлично, нужно только чтобы он делал это все не только в одной директории. За ранее спасибо. Я реализовал это описуя каждую директорию отдельно и прописуя цикл и условие каждой директории соответственно. Так все работает хорошо, но скрипт, а тем более батник при выполнении выходит большим. |
Последний раз редактировалось Sony777, 14-12-2011 в 14:17. Отправлено: 13:21, 14-12-2011 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Удаление файлов из сетевой папки | VERVIL | Microsoft Windows NT/2000/2003 | 2 | 15-04-2010 05:22 | |
Доступ - Удаление папки | uhaalex | Microsoft Windows 2000/XP | 1 | 16-06-2009 02:11 | |
Разное - [решено] Удаление папки | Drix | Microsoft Windows Vista | 13 | 05-05-2008 08:55 | |
Разное - удаление папки- элемент не найден | rustam1107 | Microsoft Windows Vista | 3 | 04-03-2008 11:34 | |
Удаление расшареной папки в Win98 | Lumer | Microsoft Windows 95/98/Me (архив) | 2 | 02-12-2004 14:12 |
|