1 (изменено: alexii, 2012-03-27 03:04:48)

Тема: VBScript: оставить файлы, если их мало в каталоге

Есть часть скрипта :

 ' Создание объекта Folder
    Set oFolder = oFSO.GetFolder(sFolderPath)
   

    ' Получение коллекции файлов
    Set colFiles = oFolder.Files


    ' Обработка каждого файла из коллекции
    For each oFile in colFiles
   
        ' сравниваем имя с шаблоном
        if re.test(ofile.Name) then  

             oLogFile.Writeline oFile.Path  & vbTab & oFile.DateCreated  
             ' Проверка, является ли файл устаревшим
              If (Date-oFile.DateLastModified) > dt and (Date-oFile.DateCreated) >dt Then
              ' Запись сообщения в журнал сценария
              oLogFile.Writeline oFile.Path & vbTab & oFile.DateCreated
              ' Удаление устаревшего файла
              oFSO.DeleteFile oFile.Path, True
            
              ' Проверка на наличие ошибок
                if err.Number <> 0 then
                  ' Запись сообщения об ошибке в журнал сценария
                  oLogFile.Writeline "-----> Error # " & CStr(Err.Number) _
                  & " " & Err.Description
                  ' Очистка ошибки
                  Err.Clear
                end if
            
               End if
        end if
    Next

Смысл его сканирует папку и удалить старый файлы, дата создания которая более dt

Нужно, но не знаю как сделать:
1) Проверку, что нужных файлов по маске не менее n файлов, маска сравнивается(re.test(ofile.Name) ), если их n файлов = выход, если более n файлов удалить, самые старые.
вот так короче

2

Re: VBScript: оставить файлы, если их мало в каталоге

Весна !!! Курсовики !!! Подснежники !!!
Я пишу Jscript (в теме язык не указан)
в общем алгоритм такой:
Создаем массив
a=[]
Первый цикл
Если Имя Файла  удовлетворяет условию добавляем в массив
a[a.length]=[ofile.path,oFile.DateCreated]
конец цикла

если длина массива больше N
Сортируем по дате
a.sort(function (x,y){return (x[1] - y[1]})
Удаляем в цикле с N элемента
for (var i=N;i<a.length;i++)
oFSO.DeleteFile(a[i][0],true)