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: Fri Aug 02, 2019 20:45    Post subject: Reply with quote

Про неавтоматизацию в этом разделе мы не говорим...

Dimsok
Проверяй:
Code:
'========================== VBS ===========================
' Замена дат модификации выбранных в активной панели файлов
' на даты модификации файлов, выбранных в пассивной панели

' Условия: • необходим компонент TCScript.dll 1.0.0.15+
'          • числа файлов в панелях должны совпадать
'          • должны быть выбраны только файлы
'          • TC 9.10+
'===================================== Автор: Flasher © ===
Option Explicit: Dim TCH, FSO, A, AList, PList, i, F, MDate
Set TCH = CreateObject("TCScript.Helper")
Set FSO = CreateObject("Scripting.FileSystemObject")
With TCH
  A = .GetInfo(1000)
  Select Case True
    Case .GetInfo(1006+A) + .GetInfo(1004+A) = 0 Quit "В активной панели  ничего не выбрано!"
    Case .GetInfo(1009-A) + .GetInfo(1007-A) = 0 Quit "В пассивной панели ничего не выбрано!"
    Case .GetInfo("LP") =  .GetInfo("RP") Quit  "Источник не должен совпадать с получателем!"
    Case .GetInfo(1005) <> .GetInfo(1006) Quit "Количества выделенных объектов не совпадают!"
  End Select
  .LockTC True : AList = .GetSrcSelectedFiles(1)
  If Right(AList(0), 1) = "\" Then Quit "Снимите выделение с папок активной панели!"
  PList = .GetTrgSelectedFiles(1)
  If Right(PList(0), 1) = "\" Then Quit "Снимите выделение с папок пассивной панели!"
  .LockTC False : A = .GetInfo(1005) : If A = 0 Then A = 1
  For i = 0 To A - 1
    MDate = FSO.GetFile(PList(i)).DateLastModified : Set F = FSO.GetFile(AList(i))
    If MDate <> F.DateLastModified Then .SetFileDateAtr AList(i), F.DateCreated, MDate
  Next
End With
Set TCH = Nothing: Set FSO = Nothing
CreateObject("WScript.Shell").Popup Space(13) & "Выполнено!",_
 1.7, " Замена дат модификации файлов      ", 4160

Sub Quit(Msg)
  Dim Color : Set FSO = Nothing
  With TCH
    .LockTC False
    Color = .INIRead(.MainINI, "Colors", "BackColor", "16777215")
    If Color = "-1" Then Color = 16777215
    CreateObject("Internet.HHCtrl").TextPopup Msg,_
    .INIRead(.MainINI, "AllResolutions", "FontNameTip", "Verdana") &","&_
    .INIRead(.MainINI, "AllResolutions", "FontSizeTip", "10"), 20, 10,_
    Abs(.INIRead(.MainINI,"Colors","ForeColor","-1")), Color
    WSH.Sleep 2000 : Set TCH = Nothing : WSH.Quit
  End With
End Sub
Code:
'=================== VBS ====================
' Изменить даты модификации файлов активной
' панели на даты одноимённых файлов пассивной

' Условие:  путь запуска — пустой

' Параметр: "%T"
' /r — ключ обработки всей файловой структуры
'============================================
Option Explicit: Dim FSO, PPath, PLn, APath, R, AFold, c
Set FSO = CreateObject("Scripting.FileSystemObject")
PPath = WSH.Arguments(0) : PLn  = Len(PPath) + 1
APath = FSO.GetAbsolutePathName("")
R = WSH.Arguments.Named.Exists("r")
With CreateObject("Shell.Application")
  Set AFold = .NameSpace(APath) : Recurse .NameSpace(PPath)
End With
Set AFold = Nothing : Set FSO = Nothing
If c Or R Then CreateObject("WScript.Shell").Popup Space(13) &_
"Выполнено!", 1.7, " Замена дат модификации файлов      ", 4160

Sub Recurse(PFold)
  RPath = Mid(PFold.Self.Path, PLn)
  Dim RPath, Items, i, Name, FName
  Set Items = PFold.Items
  Items.Filter 73920, "*"
  For Each i in Items
    Name = FSO.GetFileName(i.Path)
    If FSO.FileExists(FSO.BuildPath(APath, RPath & "\" & Name)) Then c = 1:_
    AFold.ParseName(FSO.BuildPath(RPath, Name)).ModifyDate = i.ModifyDate
  Next
  If R Then Items.Filter 73888, "*" :_
  For Each i in Items: Recurse i.GetFolder :Next
  Set Items = Nothing
End Sub
Кое-что похожее выкладывал.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.


Last edited by Flasher on Sat Aug 03, 2019 06:51; edited 2 times in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group