Flasher

|
Posted: Fri Aug 02, 2019 20:45 Post subject: |
|
|
Про неавтоматизацию в этом разделе мы не говорим...
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 |
|