'•••••••••••••••••••••••••••••••••••••• VBS ••••••••••••••••••••••••••••••••••••••
' Назначение: Фильтрация в активной панели файлов и/или папок по заданной разнице
' единиц измерения времени их дат с текущей датой и временем
' Условия: путь запуска - пустой
' необходим компонент Script Helper ActiveX for TC
' Параметры: <тип элементов> <тип даты> <единица времени> <знак сравнения> <число>
' Тип элементов принимает следующие значения:
' 1 - только папки
' 2 - только файлы
' 3 - папки и файлы
' Тип даты принимает следующие значения:
' 1 - дата создания
' 2 - дата модификации
' Единица (измерения) времени принимает следующие значения:
' s - секунда
' n - минута
' h - час
' d - сутки/день
' ww - неделя
' m - месяц
' q - квартал
' yyyy - год
' Знак сравнения принимает следующие значения: = | <> | < | <= | >= | >
' Примеры параметров: 3 1 n <= 5 | 2 2 d < 2
' Автор: Flasher ©
'••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Option Explicit : Dim Etype, DType, UTime, Compr, Count, DNow, FSO, Dir, F, D, S, T
With WScript.Arguments
If .Count <> 5 Then MsgBox "Должно быть указано 5 параметров!",_
vbExclamation, Space(17) & "Фильтрация по дате" : WSCript.Quit
EType = .Item(0) : DType = .Item(1) : UTime = .Item(2)
Compr = .Item(3) : Count = .Item(4)
End With : DNow = Now
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Dir = FSO.GetFolder(CreateObject("Wscript.Shell").CurrentDirectory)
If EType <> 2 Then
For Each F in Dir.SubFolders
If Test(F) Then S = S & F & "\" & vbNewLine
Next
End If
If EType > 1 Then
For Each F in Dir.Files
If Test(F) Then S = S & F & vbNewLine
Next
End If
If Not IsEmpty(S) Then
With CreateObject("TCScript.Helper")
.Pause = 0 : .Wait = True : .LockTC True : T = .GetTextFromClip
.SetTextToClip(S) : .SendCommand 2033, True : .SendCommand 2023, True
.SendCommand 524, True : .LockTC False : .SetTextToClip(T)
End With
End If
Function Test(Item)
If DType = 1 Then D = Item.DateCreated Else D = Item.DateLastModified
Test = Eval(DateDiff(UTime, 0, DNow - D) & Compr & Count)
End Function |