Синхронизация дат создания и изменения по более ранней
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Автоматизация Total Commander

#1: Синхронизация дат создания и изменения по более ранней Author: ant PostPosted: Sun Dec 08, 2019 15:15
    —
Здравствуйте, имеется на ПК папка со множеством ХТМЛ-файлов, разложеных по подпапкам. В ихних атрибутах неразбериха: то дата создания раньше, то дата изменения.
Мне нужно: во всех файлах привести оба значения по раньшему. Как это сделать?
- Если выделяю результаты поиска, то в атрибутах нужно задать какое-то значение, либо взять от другого. Но как сделать, чтобы Тотал-командер сравнил, и задал раньшее значение в поздний атрибут?
Т.е. чтобы в итоге оба были одинаковы по дате. Или это достигнется только хитрым бат-файлом?

#2:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Dec 08, 2019 16:02
    —
ant
Стандартным средствами TC — никак. Можно, конечно для любого набора файлов заменить (с плагином tc через диалог "Изменение атрибутов") дату/время создания на дату/время изменения — или наоборот. Но делать то или другое одним процессом, автоматически прикидывая зависимость от того, что там где раньше... не уверен, что даже в средствах автоматизации добиться этого легко. Впрочем, пусть специалисты судят.
Зачем вообще понадобилась подобная синхронизация дат и и что плохого в нынешнем состоянии, мне непонятно, но ваши прихоти — ваше дело.
И пара слов для сведения. Во-первых, в русском языке есть понятие "более ранний" а слово "раньший" отсутствует. Во-вторых, слово "дата" — женского рода, и "раньшим", как вы выражаетесь, она быть не может.

Тема перенесена в "Автоматизацию". Прежний заголовок "дату создания и дату изменения - привести к раньшему" приведён к более пристойному состоянию как по форме, так и по содержанию.


Last edited by Avada on Sun Dec 08, 2019 16:11; edited 1 time in total

#3:  Author: ant PostPosted: Sun Dec 08, 2019 16:10
    —
Avada, спасибо за ответ; но у нас разное словоупотребление в речи.
Эта потребность возникла потому, что в разных папках файлы одинаковой тематики, и мне нужно их собрать правильно, исходя из ранней даты.

#4:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Dec 08, 2019 16:14
    —
ant
У нас не разное словоупотребление, а у меня реальное, а у вас несуществующее в языке. Филологические дискуссии предлагаю на этом закончить. А причины постановки задачи, как было сказано, лично меня не особо интересуют. Нужно — ждите ответа.

#5:  Author: LonerDLocation: Донецк PostPosted: Mon Dec 09, 2019 16:54
    —
Вот такой скрипт на AutoHotkey навырисовывался.
Команда запуска: "Path_to_AHK\AutoHotkey.exe" "Path_to_script\Script.ahk"
Параметр: %WL
Выделить нужные файлы и каталоги, запустить скрипт. Обработаются в том числе рекурсивно файлы в выделенных каталогах.
Даты самих каталогов не модифицируются.
Советую предварительно попробовать работу скрипта на ненужных файлах, а то мало ли...


Code:
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; Total Commander DreamLair                        ;
; Script: Sync Creation and Modification times     ;
;      (new time = earlier time)                   ;
; Script version: 1.0 (2019.12.09)                 ;
; Script author: LonerD (Made in DPR)              ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; Parameter:                                       ;
;   1: %WL ( required )                            ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;

#NoEnv
#NoTrayIcon
#SingleInstance ignore
SetKeyDelay, 20, 20

if not ( WinExist("ahk_class TTOTAL_CMD") || WinActive("ahk_class TTOTAL_CMD") )
  ExitApp

if 0 < 1
  ExitApp
Target = %1%

FilelistV =

Loop, Read, % Target
{
  FilelistV := FilelistV . A_LoopReadLine . "`r`n"
  if InStr(FileExist(A_LoopReadLine), "D")
    Loop, Files, %A_LoopReadLine%*.*, FDR
      FilelistV := FilelistV . A_LoopFileFullPath . "`r`n"
}

Loop, Parse, % FilelistV, `n, `r
{
  if InStr(FileExist(A_LoopField), "D")
    Continue

  FileGetTime, CreDate , % A_LoopField, C
  FileGetTime, ModDate , % A_LoopField, M
  NewDate := CreDate > ModDate ? ModDate : CreDate
  FileSetTime, % NewDate, % A_LoopField, C, 0, 0
  FileSetTime, % NewDate, % A_LoopField, M, 0, 0
}

FilelistV =
ExitApp



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group