View previous topic :: View next topic |
Author |
Message |
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Thu Aug 01, 2019 05:54 Post subject: Дата/время изменения файлов из получателя в источник |
|
|
Нужно менять дату модификации файлов в текущей панели на дату модификации файлов из другой панели. Желательно в 2 вариантах:
1. Изменяется время выделенных в текущей панели файлов на время выбранных в противоположной панели файлов. При условии, что количество выбранных файлов в другой и текущей панели идентично, при том, что имена могут быть разными. В противном случае ничего не делать.
2. Изменяется время всех файлов в текущей панели на время модификации файлов из другой панели. Только тех, чьи имена (вместе с расширениями) совпадают с именами файлов в противоположной панели. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Aug 01, 2019 10:31 Post subject: |
|
|
1. А если где-то будут выбраны только или частично папки? Смотреть на совпадение кол-ва лучше обработки меньшего из чисел?
2. Папки игнорировать? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Fri Aug 02, 2019 01:17 Post subject: |
|
|
1. Если выбраны папки, то ничего не делать. То же самое во втором вопросе - только совпадение количества.
2. Имеешь в виду выделенные папки вместо файлов или рекурсию? Если можно (или не сложно) отдельный параметр, то рекурсия не помешала бы. В противном случае лучше без неё. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2571
|
(Separately) Posted: Fri Aug 02, 2019 11:00 Post subject: |
|
|
Dimsok
Вторую задачу можно решить из диалога синхронизации каталогов: Сравнить, Ctrl+A, Контекстное меню, Копировать свойства файла… |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2571
|
(Separately) Posted: Fri Aug 02, 2019 16:17 Post subject: |
|
|
Dimsok
Стоит учесть момент, что при использовании синхронизации каталогов в варианте с рекурсией (галка "с подкаталогами"), скопируются метки даты и времени также и папок, содержащих файлы (подробнее здесь). |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) 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 |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Sat Aug 03, 2019 03:35 Post subject: |
|
|
1. Какие параметры? Пишет, в активной панели ничего не выбрано.
Кстати, какой-то глюк с TCScript: если нажать в любое место TC пока видно всплывающее окно с этим сообщением, TC сворачивается. Так и должно быть?
Добавлено спустя 5 минут:
2. Возможно ли сделать так, чтобы окно "Выполнено" появлялось только при выполненной задаче, а не во всех случаях? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Aug 03, 2019 04:07 Post subject: |
|
|
1. Зачем спрашиваешь? Их нет. Забыл указать ещё одно условие: TC9+. У тебя какая версия?
А ТС именно сворачивается? Или окно замерзает/пропадает? Глюка быть не должно, т.к. разблокировка стоит перед появлением. На 7 ничего такого не наблюдалось.
2. Что ты называешь всеми случаями? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Sat Aug 03, 2019 04:15 Post subject: |
|
|
Последняя 8. С пустыми параметрами выдавал ошибку.
Ну появляется окно другой программы.
Ну когда изменение даты не происходит при не совпадении имён. То есть, когда выполнять нечего. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Aug 03, 2019 04:36 Post subject: |
|
|
На 8 нет смысла. По ныняшним меркам — каменный век.
Окно какой программы? Идущее следом после верхнего?
Ну, даже если совпадений нет, скрипт свою работу сделал, о чём и сигнализирует. И ты точно можешь понять, что процесс не висит, а работа скрипта окончена. Особенно актуально для рекурсии. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Sat Aug 03, 2019 04:53 Post subject: |
|
|
Окно браузера Opera.
А 9 - космический? Или ещё бронзовый? Смотрел, что там есть. Ничего такого, чтоб прям ах, прорыв. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Aug 03, 2019 05:11 Post subject: |
|
|
Т.е. браузер открывается, когда закрыт?
Насчёт второго скрипта. Могу сделать, чтобы окно не появлялось в случае полного несовпадения, но без указания /r.
Век ТС Пока — серебряный. Там не прорыв, конечно, но исправлена куча древних багов, а также улучшен поиск (отдельный процесс, мегаскорость/опции с Everything), расширена оцветовка элементов, появились стили оформления с автовыбором (аля TwinKey), масштабирование диалогов по DPI, вертикальный бар, поддержка 7-zip, ряд нужных ini-ключей и пользовательских команд, в т.ч. полезных для автоматизации и применяемых в ряде здешних скриптов и кнопок. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Sat Aug 03, 2019 05:17 Post subject: |
|
|
Нет, открыт. Ещё бы он самостоятельно программы запускал. Это уж точно был бы прорыв. Если бы, конечно, читал мысли и знал, что запускать.
Ладно, обойдусь пока без 1-го скрипта. Потом как-нибудь когда можно будет сразу шагнуть в золотой.
Спасибо.
Со вторым сделай без всплывающего окна. Рекурсией всё равно если буду пользоваться, то редко. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Aug 03, 2019 05:34 Post subject: |
|
|
Dimsok wrote: | Ещё бы он самостоятельно программы запускал. Это уж точно был бы прорыв. | И что же тут прорывного? В куче скриптов программы как запускали, так и будут запускать. Я спросил "Идущее следом после верхнего?", а в ответ вместо "да" получаю константу: "Окно браузера Opera.". Может, глюк Internet.HHCtrl, мне откуда знать.
Dimsok wrote: | Ладно, обойдусь пока без 1-го скрипта. | А моё зря потраченное время кто оплатит? Я мог бы упростить и под 8-ку, но теперь уже откровенно лень...
Dimsok wrote: | Со вторым сделай без всплывающего окна. | Вообще? А как ты узнаешь, что скрипт сработал? Будешь сортировать по дате или полезешь смотреть в свойства файлов? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Dimsok
Joined: 17 Aug 2014 Posts: 663
|
(Separately) Posted: Sat Aug 03, 2019 06:06 Post subject: |
|
|
Quote: | И что же тут прорывного? В куче скриптов программы как запускали, так и будут запускать |
Телепатические?
Ну так, как ты предположил - в случае несовпадения. Да и зачем куда-то лезть, когда колонка со временем вроде бы имеется. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|