|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Удаление файлов по сети старше 7 дней, оставлять не менее 10 файлов |
|
VBS/WSH/JS - [решено] Удаление файлов по сети старше 7 дней, оставлять не менее 10 файлов
|
Новый участник Сообщения: 29 |
Задача немного сложнее, нужно удалить все файлы по сети в расшаренной папке,
определённого разрешения, например *.zip в одной папке, старше 7 дней, при этом оставлять не менее 10 файлов, даже если они старше 7 дней |
|
Отправлено: 17:59, 26-12-2011 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать white155, Вы уверены насчёт «не старше»? Обычно требуется как раз наоборот — оставлять самые свежие файлы.
|
Отправлено: 09:50, 28-12-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 29
|
Профиль | Отправить PM | Цитировать исправил
|
Отправлено: 12:10, 30-12-2011 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать white155, ясно.
Попробую и Вас приобщить к библиотеке Log Parser (Download: Log Parser 2.2 - Microsoft Download Center - Download Details). Примерный код: Если у Вас есть возможность использовать PowerShell — можно попробовать и так: |
Отправлено: 21:18, 30-12-2011 | #4 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Iska, вопрос, вроде бы, несколько по другому сформулирован
оставить все файлы не старше 7дней и если их меньше 10, добавить из тех что старше 7 дней |
|
Отправлено: 10:53, 31-12-2011 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать introvert, осознал свою ошибку: свежих файлов может оказаться куда больше десяти. Подумаем, как и это учесть. Жаль, красоты в коде тут уже не будет
![]() |
Отправлено: 16:01, 31-12-2011 | #6 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать ' Скрипт оставляет в указанной папке не менее указанного числа свежих файлов с указанным расширением (если они есть) ' Если среди оставшихся файлов имеются старше указанного кол-ва дней, они удаляются fPath = "E:\DelShare" ' Полное имя рабочего каталога (без слэжа \ на конце) fExt = "bat" ' Расширение файлов nMin = 10 ' Минимальное число оставляемых файлов nOld = 7 ' Старше кол-ва дней файлы удаляем OldDate = DateAdd("d", -nOld, Date) ' MsgBox CStr(OldDate) Set FSO = CreateObject("Scripting.FileSystemObject") Set Folds = FSO.GetFolder(fPath) Set Files = Folds.Files N = Files.Count - 1 ' MsgBox CStr(N) If N < 0 Then MsgBox "В папке" + vbCrLf + fPath + vbCrLf + "файлы не найдены" Else ReDim nFiles(N), dFiles(N) NN = -1 For Each jf In Files nFiles(NN + 1) = jf.Name If LCase(FSO.GetExtensionName(fPath + "\" + nFiles(NN + 1))) = LCase(fExt) Then NN = NN + 1 dFiles(NN) = jf.DateLastModified End If Next If NN < 0 Then MsgBox "В папке" + vbCrLf + fPath + vbCrLf + "файлы c расширением " + fExt + vbCrLf + " не найдены" Else For i = 0 To NN For j = i To NN If dFiles(i) < dFiles(j) Then df = dFiles(i) dFiles(i) = dFiles(j) dFiles(j) = df nf = nFiles(i) nFiles(i) = nFiles(j) nFiles(j) = nf End If Next ' MsgBox CStr(dFiles(i)) + " " + nFiles(i) Next If NN > nMin - 1 Then For i = nMin To NN ' MsgBox CStr(dFiles(i)) + " " + nFiles(i) If dFiles(i) < OldDate Then Call FSO.DeleteFile(fPath + "\" + nFiles(i), True) Next End If End If End If 1. Записываю имена и даты изменения файлов в массивы 2. Сортирую по датам по убыванию 3. Просматриваю в массиве с датами файлов элементы более минимального количества Старые файлы удаляю |
------- Последний раз редактировалось megaloman, 04-01-2012 в 00:48. Отправлено: 00:42, 04-01-2012 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Нужно удалить лог файлы старше 30 дней | ksv_sergo | Скриптовые языки администрирования Windows | 14 | 24-03-2016 15:02 | |
Любой язык - Удаление файлов старше 5 дней кроме указанного по имени. | Joni | Скриптовые языки администрирования Windows | 6 | 11-07-2012 11:18 | |
[решено] Автоочистка файлов, старше 5 дней. | Universal_gr | Программное обеспечение Linux и FreeBSD | 1 | 01-10-2010 01:12 | |
Прочее - удаление файлов старше 10 дней | admin666 | Общий по Linux | 1 | 23-07-2009 19:09 | |
Удаление файлов по сети в карзину | Admiral83 | Сетевые технологии | 1 | 15-02-2006 14:51 |
|