Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Изменение даты нескольких файлов с разницей в секунду 
Author Message
Flasher



PostPosted: Mon Jun 22, 2020 05:24    Post subject: Reply with quote

Code:
'=============================== VBS ===============================
' Установка даты модификации файлов с пошаговым изменением интервала
'
' Параметры: %WL <интервал> [-]<число интервалов> [/d]
' Примеры:   %WL s 1 /d  |  %WL n -5
'
' /d — ввод даты/времени в диалоге, иначе будут использованы текущие
' Интервал принимает следующие значения:  s - секунда
'                                         n - минута
'                                         h - час
'                                         d - день
'                                         ww - неделя
'                                         m - месяц
'                                         q - квартал
'                                         yyyy - год
'============================================== Автор: Flasher © ===
Option Explicit : Dim A, D, Y, List, Desc, F, c, Ins
Set A = WSH.Arguments : If A.Count = 0 Then WSH.Quit
D = Now : c = 0 : If A.Named.Exists("d") Then InputB
Set List = CreateObject("Scripting.FileSystemObject").OpenTextFile(A(0),,,-1)
Set Desc = CreateObject("Shell.Application").NameSpace(0)
Do: F = List.ReadLine
  If Right(F, 1) <> "\" Then Desc.ParseName(F)._
  ModifyDate = DateAdd(A(1), c, D) : c = c + A(2)
Loop Until List.AtEndOfStream : List.Close
Set List = Nothing : Set Desc = Nothing

Sub InputB
  Dim i, n, x
  For Each i in Split("sсекунд a ы |nминут a ы |hчас  а ов|dд ень " &_
  "ня ней|wнедел я и ь|mмесяц  а ев|qквартал  а ов|y год года лет", "|")
    If Left(i, 1) = Left(A(1), 1) Then i = Mid(i, 2) : Exit For
  Next
  n = Abs(Right(A(2), 2)) : x = Right(n, 1) : If x = 0 Or (n > 10 And _
  n < 21 Or x > 4 And x < 10) Then n = 3 Else If x = 1 Then n = 1 Else n = 2
  With CreateObject("htmlfile")
    Y = 96/.Parentwindow.Screen.deviceYDpi
    Y = 15*Y*(.Parentwindow.Screen.Height-188*Y)/2
  End With
  Do: D = Trim(InputBox(vbCr & "Интервал:" & vbTab & A(2) & " " &_
    Split(i)(0) & Split(i)(n) & vbCr & vbCr & Ins & vbCr & vbCr &_
    "Введите исходную дату и время:", " Установка дат модификации файлов", D,, Y))
    If D = "" Then WSH.Quit
    If Not IsDate(D) Then Ins = Space(18) & "Ошибка ввода!" Else Exit Do
  Loop
End Sub

_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.


Last edited by Flasher on Tue Jun 23, 2020 13:21; edited 2 times in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group