Автоматизация переноса атрибутов и времени изменения файлов

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Помню, что сохранял себе, но не нашёл. А в чём задача?
Переносить дату модификации с одного файла на другой. С твоим скриптом для уникодных имён не работает, а с этой программкой я так понял возможно при определённых ограничениях.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Код: Выделить всё

'============================ VBS =============================
' Присвоение файлу даты модификации другого файла
' Параметры: "<путь файла-источника>" "<путь файла-получателя>"
' Пример: %V %T%M
'==============================================================
With CreateObject("Shell.Application").NameSpace(0)
  .ParseName(WScript.Arguments(1)).ModifyDate =_
  .ParseName(WScript.Arguments(0)).ModifyDate
End With
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Dimsok писал(а):Ни у кого нет в наличии?
Выложил.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Flasher, sa
Спасибо.
helb
Сообщения: 57
Зарегистрирован: Ср окт 08, 2014 21:46

Сообщение helb »

Тоже в тему, выкладывал такое раньше:
Копирование/вставка (Copy & Paste) атрибутов/времен файлов
Unicode, файлы/папки, рекурсия. Работает как обычный copy-paste, для одного объекта вообще на 100% интуитивно.
Александр Дружинин
Сообщения: 1
Зарегистрирован: Вт дек 06, 2016 13:59

Сообщение Александр Дружинин »

Отличная утилита, давно искал подобную. Спасибо очень помогли.
Александр Иванович Дружинин
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

http://forum.wincmd.ru/viewpost.php?p=95357

С параметром "1" (Время создания) не работает, а с "4" работает (Время создания+Дата модификации).
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Могу такой скрипт с поддержкой Юникода предложить:

Код: Выделить всё

'••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
' Изменение дат и времени выбранных файлов и папок одной панели на дату и время
' элемента другой панели с возможностью рекурсивной обработки содержимого папок

' Условие: необходим компонент TCScript.dll

' Параметры: %d <актив./пассив. панель: A/P> <индекс замены> <флаг рекурсии: 1>
' Выбор панели определяет, где будет находиться текущий объект-источник.
' Соответственно, в другой панели должны быть выбраны изменяемые объекты.

' Индекс замены принимает следующие значения:
' 1 - даты создания
' 2 - даты модификации
' 3 - даты последнего открытия
' 4 - даты создания и модификации
' 5 - даты создания и последнего открытия
' 6 - даты модификации и последнего открытия
' 7 - даты модификации, создания и последнего открытия

' Примеры параметров:  %d P 2   |  %d A 7   |  %d P 4 1
'••••••••••••••••••••••••••••••••••••••••••••••••••••••••• Автор: Flasher © •••

Option Explicit
Dim Title, C, Panel, Count, Rec, FSO, TCH, F, List, DC, DM, DA, D, T
With WSH.Arguments
  Title = " Изменение атрибутов": C = .Count: If C = 0 Then WSH.Quit
  Panel = .Item(1) : Count = .Item(2) : If C = 4 Then Rec = .Item(3)
End With : If Not IsNumeric(Count) Or (Count < 1 Or Count > 7) Then _
MsgBox "Недопустимый индекс замены!"&vbCr&vbCr&"Смотрите описание.",_
4144, Space(30) & "Ошибка", Title : WSH.Quit
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TCH = CreateObject("TCScript.Helper") : TCH.Pause = 0
Select Case Panel
  Case "A" F = TCH.GetSrcPath    & TCH.GetInfo("SN") : List = TCH.GetTrgSelectedFiles(1)
  Case "P" F = TCH.GetInfo("TP") & TCH.GetInfo("TN") : List = TCH.GetSrcSelectedFiles(1)
End Select : If F = "" Or Right(F, 1) = "\" Then WSH.Quit
If FSO.FileExists(F) Then Set F = FSO.GetFile(F) Else Set F = FSO.GetFolder(F)
If InStr("1457", Count) Then DC = "CDate(""" & F.DateCreated & """)"
If InStr("2467", Count) Then DM = ",""" & F.DateLastModified & """"
If InStr("3567", Count) Then DA = ",""" & F.DateLastAccessed & """"
If IsEmpty(DM) And Len(DA) Then DA = "," & DA
D = DC & DM & DA : Set F = Nothing
For Each F In List
  If FSO.FolderExists(F) Then
    FFile F : If Rec = 1 Then T = 1 : Set F = FSO.GetFolder(F) : FFolder F
  ElseIf FSO.FileExists(F) Then FFile F End If
Next
With CreateObject("WScript.Shell")
  If T Then .Popup "  Выполнено!", 2, Title & "      ", 4160 Else .SendKeys "^r"
End With

Sub FFolder(Fd)
  For Each Fl In Fd.Files : FFile Fl : Next
  Dim Fl : For Each Fl In Fd.SubFolders : FFile Fl : FFolder Fl : Next
End Sub : Sub FFile(I) : Execute "TCH.SetFileDateAtr CStr(I)," & D End Sub
Последний раз редактировалось Flasher Ср янв 18, 2017 20:51, всего редактировалось 3 раза.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

TCHelper.dll это не то же самое, что TCWSHelp.exe?
TCWSHelp.exe установлен, выдаёт ошибку Line 34 Char 13 Error "Object doesn't support this property of method: 'Getinfo'.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Нет, не то же. TCScript.dll точнее. Ранее не замечал, что описался.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Чего-то не пойму, надо манифесты создавать, или достаточно скачать готовую сборку? И если второе, то куда это скопировать?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

См. 1, 2 и 7.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Тут тоже не работает с параметром "1"

И можно сделать, чтобы молча всё делалось?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Шапку внимательно смотрел? Молча - без Popup? Это для рекурсии.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

%d P 2 - Меняет дату модификации с popup.
%d P 1 - Разве не должно менять дату создания?

Добавлено спустя 8 минут:

И какая разница между %d P 2 и %d P 2 1. Во втором случае и должна включаться эта самая рекурсия? У меня никакой разницы между ними.
Ответить