Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] VBS/WSH. Сортировка файлов по дате. (http://forum.oszone.net/showthread.php?t=145810)

rancid 22-07-2009 06:37 1174267

VBS/WSH. Сортировка файлов по дате.
 
Доброго времени суток.
Может быть у кого-то есть скрипт для решения следующей задачи:
SQL Server создает бэкапы в папку Backup. Полный бэкап в 00.05 каждый день (расширение full) и часовые бэкапы в 35 минут каждого часа (расширение trl). Для восстановления требуется восстановить последний .full-файл, после чего последовательно накатить .trl (т.е. созданные в 00.35, 01.35, 02.35 и т.д., до последнего файла). Вопрос в следующем - как отсортировать файлы по дате? Т.е. так, что бы получился массив имен файлов, в котором имена располагаются по дате создания.

rancid 22-07-2009 08:22 1174302

Сам уже сделал)

Vadikan 22-07-2009 10:05 1174384

rancid, так поделитесь решением, иначе пометка решенной не имеет смысла.

rancid 23-07-2009 06:38 1175241

Код:

WorkDir="E:\BackUp\"
set fso = createobject("scripting.filesystemobject") 
set sha = createobject("shell.application") 
set dir = sha.namespace(WorkDir) 
set arr = dir.items 
arr.filter 192, "*.full" 
for i = 0 to arr.count - 1 
  if i = 0 then
      set fnewest = fso.getfile(arr.item(i).path)
  else
      if fnewest.datecreated < fso.getfile(arr.item(i).path).datecreated then 
        set fnewest = fso.getfile(arr.item(i).path)                  'получаем последний полный бэкап
      end if 
  end if 
next


set narr = dir.items
narr.filter 192, "*.trl"

for i = 0 to narr.count - 2
        for j = i+1 to narr.count - 1
                set min = narr.item(i).path
                set num = i

                if min.datecreated > fso.getfile(narr.item(j).path).datecreated then
                        set min = narr.item(j)                        'сортируем часовые бэкапы по дате создания
                        set num = j
                end if

        next
        set narr.item(num) = narr.item(i)
        set narr.item(i) = num
next

Решение, наверное, не красивое, но действенное:). На выходе - fnewest содержит путь к последнему файлу с расширением .full, массив narr содержит отсортированный по дате создания список файлов с расширением full.


Время: 05:38.

Время: 05:38.
© OSzone.net 2001-