Изменить дату создания каталогов по дате входящих файлов
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Общие вопросы

#1: Изменить дату создания каталогов по дате входящих файлов Author: c930 PostPosted: Sun Jan 30, 2011 17:45
    —
Нужно изменить дату создания N-го количества подкаталогов (находящихся в одном каталоге) в соответствии с датой создания входящих в них файлов (т.к. оригинальные даты утерялись после перемещения каталогов другим командером).

Единственный способ, что я нашёл, это выделить (поиском или вручную в режиме CTRL+B файлы доноры и скопировать их временно в родительский каталог), а затем последоватьельно для каждого каталога копировать дату создания из нужного файла посредством кнопки
Load from file under cursor/Загрузить из файла под курсором в подменю Изменить атрибуты...

Или есть какой-нибудь более элегантный способ штатными средствами или с помощью плагинов? Вроде плагинов для работы с атрибутами не нашёл я.

Что интересно, если файл-донор находится в одном каталоге с подкаталогом у которого нужно сменить дату, то всё получается: выделяем подкаталог, ставим маркер на файл-донор и лезем в меню...
Но у меня файлы-доноры находятся в этих подкаталогах, и если я выделяю родительский каталог, маркер ставлю на файл - то после захода в меню смены атрибутов выделение перепрыгивает на файл под маркером Crying or Very sad. Из-за этого и приходится копировать файлы в родительский каталог.

#2:  Author: Tol!kLocation: Арзамас PostPosted: Sun Jan 30, 2011 18:38
    —
Есть touch.exe, но она не умеет работать с папками.
Найдёшь умеющую работать с папками – отблагодарю батником, ибо самому нужна.

#3:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Feb 01, 2011 19:25
    —
Просто дату создания папки нужно ставить по самой ранней дате создания файлов и подпапок? Тут за полчаса можно набросать утилитку.


Code:
MIME-Version: 1.0
Content-Type: application/octet-stream; name="FixDate.7z"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="FixDate.7z"

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
FQYBACAAAAAAAA==

(обновлено - исправляет дату модификации по самой поздней дате элементов)

Рекурсивно не делал - Толик без проблем набросает батник. Smile


Last edited by MVV on Thu Feb 03, 2011 13:04; edited 4 times in total

#4:  Author: c930 PostPosted: Wed Feb 02, 2011 05:33
    —
MVV
Чёрт, мне неудобно! Право же не стоило!
Это у меня разовая задача (я надеюсь) и каталогов мало, можно всё вручную сделать, благо что можно даты копировать описанным в первом посте способом, а не вручную набирать. Я просто хотел поинтересоваться, какие ещё средства штатные есть или плагины, какие я не нашёл, для изменения даты. Поэтому я не указал чётко какой файл должен быть донором даты.

Надеюсь Tol!kу утилита будет полезна тоже!

Quote:
дату создания папки нужно ставить по самой ранней дате создания файлов и подпапок?
Нет в моём случае нужно изменить дату создания заданного каталога и всех дочерних (входящих в него) в идеале, т.к. их даты также потерялись, в соответствии с датой самого нового входящего файла, а не самого старого.

Но у меня чё-то не работает твоя утилита, дата заданного каталога не меняется...
(Кроме того, у меня видимо устаревшие понятия о дате создания, оставшиеся со времён DOSа. Меня интересует дата, которая отображается на панелях командера в режиме FULL, а это судя по данным, выдаваемым видимо встроенным контентным плагином TC есть - Дата модификации.)
...но ни та, ни другая дата у меня не изменяются при запуске утилиты твоей, и сообщения вроде тоже не выдаются никакие (может и не должны). Может я синтаксис неверно задаю.

Например, заданный каталог IMAX (в котором лежат файлы "доноры") имеет путь c:\TEMP\IMAX\
туда же в TEMP\ я и утилиту положил для простоты. Находясь в TEMP\ задаю:
FixDate c:\TEMP\IMAX\
и так пробовал
FixDate IMAX\, и так
FixDate IMAX
дата каталога не изменяется.

P.S. ОС Win XP

#5:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Feb 02, 2011 08:32
    —
Да там возни не больше, чем с батником. Smile

Уточнять надо, какая именно дата нужна. Потом, дата модификации каталога - штука ненадежная, система может изменять её сама. Но сделать-то конечно можно - обновил прикрепленный архив в предыдущем посте.

Рекурсивность проще сделать в батнике - проход по подкаталогам с вызовом утилиты, потом вызов для заданного каталога.

Батник тут простой:
Code:
@echo off
if -%1==- echo Parameters: %%WL &pause &goto :EOF
if -%1==-go goto do_work
for /f "usebackq delims=" %%f in (`type %1`) do call %0 go "%%f"
pause
goto :EOF

:do_work
for /d %%d in (%2\*) do call %0 go "%%d"
echo %2
"%~dp0FixDate.exe" %2\
Файл FixDate.exe должен лежать рядом, параметры кнопки в тотале - %WL, применять для выделенного набора папок.

Last edited by MVV on Thu Feb 03, 2011 13:00; edited 1 time in total

#6:  Author: sa PostPosted: Wed Feb 02, 2011 12:39
    —
MVV wrote:
дата модификации каталога - штука ненадежная, система может изменять её сама.
Вот тут-то утилитка и окажется полезной.

Только почему-то у меня не всегда подхватывается дата самого свежего файла, притом что, если этот файл оставить единственным в каталоге или если дату файла изменить на текущую, то дата подхватывается…

#7:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Feb 02, 2011 13:59
    —
По идее, должно работать. Я перечисляю все файлы по маске * в заданной папке:
Code:
      do {
         WCHAR* p=wfd.cFileName;
         if (*p=='.'&&(*(p+1)==0||*(p+1)=='.'&&!*(p+2))) continue;

         if (!date_set || CompareFileTime(&wfd.ftCreationTime, &max_modify)>0) {
            max_modify=wfd.ftLastWriteTime;
            date_set=1;
         }
      } while (FindNextFileW(hfd, &wfd));

А потом ставлю дату max_modify для папки. Сравнивать даты доверяю системной функции CompareFileTime.

Блин, щас смотрел на этот кусок и нашел ошибку. В условии сравнения-то я забыл исправить ftCreationTime на ftLastWriteTime. Laughing

Обновил пост с архивом.


Last edited by MVV on Wed Feb 02, 2011 14:21; edited 1 time in total

#8:  Author: sa PostPosted: Wed Feb 02, 2011 14:08
    —
А я правильно понял, что файлы должны сравниваться по дате модификации?

Ещё бы в заголовке темы поменять дату создания на дату модификации.

Add
MVV wrote:
Обновил пост с архивом.
Теперь утилита требует MSVCR100.dll. Так и должно быть?

#9:  Author: c930 PostPosted: Wed Feb 02, 2011 20:28
    —
MVV
Новая версия FixDate.exe
MD5:cd8bac45442c1976e336b27930cc51a1
при запуске из-под XP требует, как написал выше sa библиотеку MSVCR100.dll; Win2k говорит, что FixDate.exe не является приложением Win32; под Win98se не запускается, говорит ОС сменить надо.

#10:  Author: Tol!kLocation: Арзамас PostPosted: Wed Feb 02, 2011 20:53
    —
[off]
c930 wrote:
Надеюсь Tol!kу утилита будет полезна тоже!
Мне она нужна немного для других целей. В частности мне нужно передавать дату параметром и обрабатывать рекурсивно желательно самой утилитой, чтобы не плодились сущности.
[/off]

Нашёл GNU touch, которая работает с папками http://forum.wincmd.ru/viewpost.php?p=73646 (Пишут, что Cygwin touch тоже)

Code:
@echo off &chcp 1251 >nul &setlocal enableextensions
for /d /r %%d in (*) do call :t "%%d"
goto :eof

:t
for /f "delims=" %%t in ('dir /b/a-d/o-d %1') do touch.exe -r "%~1\%%t" %1 &goto :eof

запустить в корневой папке


Last edited by Tol!k on Fri Feb 11, 2011 12:33; edited 3 times in total

#11:  Author: c930 PostPosted: Wed Feb 02, 2011 20:55
    —
Quote:
Потом, дата модификации каталога - штука ненадежная, система может изменять её сама.
Дата создания ещё более ненадёжная штука, как следует из моих экспериментов, она меняется при перемещении каталога. А Дата модификации, если соответствующую галочку в настройках TC включить - остаётся неизменной при этом. Кроме того Дата модификации отображается в панелях TC в стандартном режиме FULL (который у меня всегда включён).

#12:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Feb 02, 2011 23:22
    —
Да, даты создания вообще ненадежны, а для папок - и даты модификации.

Quote:
Теперь утилита требует MSVCR100.dll. Так и должно быть?
Блин, умудрилась же чё-то вызвать из CRT, несмотря на переопределённую точку входа. Компилил просто на 10-ке, и забыл, что в новом проекте по дефолту такая вредность - подкупил размер, который меньше, чем в 6-ке, хотя при более правильной компиляции он ещё меньше - в очередной раз поправил пост.

#13:  Author: c930 PostPosted: Thu Feb 03, 2011 04:33
    —
Tol!k
Утилита из второго твоего поста
touch.exe 38,912 20.04.2005 20:41.20
md5: 6171241e363b229e0496fa5c242caa41
при запуске без параметров выдаёт сообщение об ошибке:
The procedure * could not be located in the DLL libintl3.dll

Пробовал на двух разных машинах, под Win XP и 98se.

Из батника - столько раз, сколько каталогов найдёт.

MVV
Утилита сама теперь вроде работает, а вот с кнопкой и батником - нет,
из-за пробелов похоже в именах заданных каталогов.
Спать пошёл, завтра ещё попробую.

Кнопка у меня такая:
Code:
TOTALCMD#BAR#DATA
FixDate.bat
%WL
wcmicons.dll,7
FixDate
%COMMANDER_PATH%\UTILITIEs\FixDate\

-1

#14:  Author: FlasherLocation: Москва PostPosted: Thu Feb 03, 2011 08:42
    —
c930 wrote:
из-за пробелов похоже в именах заданных каталогов.
А что мешает %WL заключить в кавычки?

#15:  Author: sa PostPosted: Thu Feb 03, 2011 10:32
    —
Flasher wrote:
А что мешает %WL заключить в кавычки?

Как обычно - проверка. Или кому-то помогло?

#16:  Author: FlasherLocation: Москва PostPosted: Thu Feb 03, 2011 10:40
    —
sa wrote:
Или кому-то помогло?
Там свои хитрости с кавычками в батниках. Я пока только предполагаю, т.к. сам не проверял за ненадобностью использования. Если тебе не помогло, то уже предложение отклоняется. Подождём, что MVV напишет.

#17:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Feb 03, 2011 13:00
    —
Да, в моем батнике косяк:
Code:
do call %0 go %%f

Правильный вариант:
Code:
do call %0 go "%%f"

Исправил батник в соотв. посте.

Flasher wrote:
c930 wrote:
из-за пробелов похоже в именах заданных каталогов.
А что мешает %WL заключить в кавычки?
Это не поможет, т.к. путь к файлу списка тотал при необходимости сам заключает в кавычки. А пути в файле списка - нет.

Quote:
Win2k говорит, что FixDate.exe не является приложением Win32
Блин, и это хотел исправить. Проблема тут в том, что у Win2k версия 5.0, а 10-я студия ставит требуемую версию системы 5.01, и никак это не исправить (большую версию задать можно, а меньшую - нет). Я точно знаю, что программка пойдет на Win2k, поэтому можно тупо исправить пару байт в PE-заголовке. Файл в посте обновил.

#18:  Author: BatyaLocation: Москва, Россия PostPosted: Thu Feb 03, 2011 13:44
    —
MVV wrote:
Исправил батник в соотв. посте.

А не нужно ещё в
Code:
"%~dp0FixDate.exe" %2\

вместо %2\ писать "%~2\" Question

#19:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Feb 03, 2011 14:01
    —
Batya wrote:
А не нужно ещё в
Code:
"%~dp0FixDate.exe" %2\

вместо %2\ писать "%~2\" Question
Не принципиально. Для получения параметра командной строки я использую давно написанную функцию, которая считает концом параметра первый пробел, не заключенный в кавычки, и удаляет из параметра все кавычки, так что строки D:\"1 2"\"3 4"\5 и "D:\1 2\3 4\5" равнозначны.

#20:  Author: BatyaLocation: Москва, Россия PostPosted: Thu Feb 03, 2011 14:25
    —
MVV wrote:
Для получения параметра командной строки я использую давно написанную функцию

И здесь же, как я понял, двойные слэши заменяются на одинарные?

#21:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Feb 03, 2011 15:04
    —
Нет, не заменяются. В этом нет необходимости. Системные функции прекрасно переваривают пути с двойными слэшами. Smile

Code:
"D:\name with spaces\\another name with spaces\1 2 3"
"D:\name with spaces\\another name with spaces"
"D:\name with spaces\"
Для продолжения нажмите любую клавишу . . .
В выводе видны пути, передаваемые утилите - разве что без завершающего слэша. Утилита лишь приписывает в хвост \* для перебора элементов, и передает оригинальный путь функции открытия файла для установки даты.

#22:  Author: Tol!kLocation: Арзамас PostPosted: Thu Feb 03, 2011 19:27
    —
c930 wrote:
The procedure * could not be located in the DLL libintl3.dll

Хм. Я специально проверял – работает без длл'ек (xp sp3 rus)
С длл'ками
Брал отсюда

#23:  Author: FlasherLocation: Москва PostPosted: Thu Feb 03, 2011 19:48
    —
Tol!k wrote:
..depositfiles.com
Здрасте..
Перезалил.

#24:  Author: Tol!kLocation: Арзамас PostPosted: Thu Feb 03, 2011 20:18
    —
Ой. Оказывается, даже более новые версии этих длл'ек у меня уже лежали рядом с sed.exe Rolling Eyes

#25:  Author: slide777 PostPosted: Thu Mar 24, 2011 21:40
    —
Уважаемые кулхацкеры!

был бы рад утилите для смены атрибутов времени со следующими возможностями:

- смена даты и времени создания, модификации, доступа к файлам и папкам
- с применением ко всем подпапкам
- с возможностью заполнения атрибутов рандомными значениями в заданном периоде, например с 12.05.2002 18:12:41 рандомно до 29.02.2004 19:03:17
- возможность отдельно задавать для всех трех дат (создание, модификация, доступ) эти периоды

нашел Magic Attribute Pro 3 - там есть маска и последовательные инкременты декременты, но нет рандома :)

#26:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Mar 24, 2011 21:52
    —
slide777
По поводу первых двух позиций — это стандартный функционал TC, реализуемый через стандартный же диалог изменения атрибутов. С использованием возможностей встроенного плагина tc. Разбираемся в диалоге и читаем справку.
Запрос на рандомные значения в диапазоне требует хотя бы минимальной аргументации в пользу их нужности. С конкретными примерами.

#27:  Author: slide777 PostPosted: Fri Mar 25, 2011 00:58
    —
именно рандом мне и нужен, ясен перец что тоталом или другой любой утилитой можно изменять по маске по значению и прочим стандартным возможностям :)

реальность:
собрал я архив документации сегодня, который эмулирует задним числом работу в прошлом для сами понимаете чего
нужно чтобы файлы и папки документации по датам были сэмулированы правдободобно :D
как будто действительно проект был сделан в таком то году в такое то рабочее время :)
реально нужная вещь

#28:  Author: Tol!kLocation: Арзамас PostPosted: Sat Mar 26, 2011 19:47
    —
slide777 wrote:
с 12.05.2002 18:12:41 рандомно до 29.02.2004 19:03:17

с 1.1.2002 по 31.12.2004 без выходных
Code:
@echo off &setlocal enableextensions
rem Автор: Tol!k
for /f "delims=" %%i in ('dir /b/s "d:\path\*.*"') do (title touch "%%i" &call :loop "%%i")
goto :eof
:loop
rem с 1.1.2002 по 31.12.2004 включительно
set /a yy=3*%random%/32768+2002
set /a mm=12*%random%/32768+101
set /a dd=31*%random%/32768+101
rem с девяти до пяти я работал героем
set /a hh=8*%random%/32768+109
set /a nn=60*%random%/32768+100
touch.exe -t %yy%%mm:~-2%%dd:~-2%%hh:~-2%%nn:~-2% %1 2>nul ||call :loop %1

#29:  Author: Tol!kLocation: Арзамас PostPosted: Sun Mar 27, 2011 13:41
    —
Code:
@echo off &setlocal enableextensions
rem Автор: Tol!k
for /f "delims=" %%i in ('dir /b/s "d:\path\*.*"') do (title touch "%%i" &call :looop "%%i")
goto :eof
:looop
rem с 2002.05.05 до 2004.05.05 (исключая)
set /a yymmdd=20000*%random%/32768+20020505
rem с девяти до пяти я работал героем
set /a hh=8*%random%/32768+109
set /a nn=60*%random%/32768+100
touch.exe -t %yymmdd%%hh:~-2%%nn:~-2% %1 2>nul ||call :looop %1

Срок можно задать с точностью хоть до месяца, хоть до дня.

Exclamation работает медленнно

#30:  Author: slide777 PostPosted: Thu Mar 31, 2011 03:28
    —
Спасибо ! :)

#31:  Author: ice_daemon PostPosted: Sat Dec 12, 2015 16:50
    —
Quote:

Батник тут простой:
Code:
@echo off
if -%1==- echo Parameters: %%WL &pause &goto :EOF
if -%1==-go goto do_work
for /f "usebackq delims=" %%f in (`type %1`) do call %0 go "%%f"
pause
goto :EOF

:do_work
for /d %%d in (%2\*) do call %0 go "%%d"
echo %2
"%~dp0FixDate.exe" %2\
Файл FixDate.exe должен лежать рядом, параметры кнопки в тотале - %WL, применять для выделенного набора папок.


А как по окончании выполнения батника правильно обновить содержимое панелей?
пишу в конце батника
"%~dp0nircmdc.exe" sendkeypress ctrl+R
но он циклически обновляет, а как сделать 1 раз по завершении?

#32:  Author: FlasherLocation: Москва PostPosted: Sat Dec 12, 2015 19:52
    —
Нужно под goto :EOF.

#33:  Author: ice_daemon PostPosted: Sat Dec 12, 2015 22:35
    —
Code:
@echo off
if -%1==- echo Parameters: %%WL &pause &goto :EOF
if -%1==-go goto do_work
for /f "usebackq delims=" %%f in (`type %1`) do call %0 go "%%f"
goto :EOF

:do_work
for /d %%d in (%2\*) do call %0 go "%%d"
echo %2
"%~dp0FixDate.exe" %2\
:EOF
"%~dp0nircmdc.exe" sendkeypress ctrl+R


Если Вы имели ввиду так, то не выходит, почему-то.
Сtrl+R нажимается циклически все время работы батника, чем больше вложенность каталогов тем дольше.

#34:  Author: Tol!kLocation: Арзамас PostPosted: Sat Dec 12, 2015 23:02
    —
Code:
@echo off
if -%1==- echo Parameters: %%WL &pause &goto :EOF
if -%1==-go goto do_work
for /f "usebackq delims=" %%f in (`type %1`) do call %0 go "%%f"
"%~dp0nircmdc.exe" sendkeypress ctrl+R
goto :EOF

:do_work
for /d %%d in (%2\*) do call %0 go "%%d"
echo %2
"%~dp0FixDate.exe" %2\
goto :EOF

#35:  Author: ice_daemon PostPosted: Sat Dec 12, 2015 23:11
    —
спасибо, теперь все ок

#36:  Author: ZorKon71 PostPosted: Sun Sep 18, 2016 01:37
    —
Доброго времени суток!
Необходимо навести на диске порядок. Нашёл эту статью, а скачать последнюю версию FixDate.exe не получается. Уже удалён файл.

Помогите с программкой, и я не совсем понял что куда положить и как работать. Особенно сбил диалог по параметру "%WL". Smile

Спасибо!

#37:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Sep 18, 2016 08:54
    —
ZorKon71
Какую "эту статью"? Где удалён файл? FixDate.exe не скачивается, а берётся из этого поста. Код копируется целиком, сохраняется в текстовом редакторе в файл с произвольным именем, после чего этот файл декодируется в 7Z-архив с помощью стандартной функции TC (см. меню "Файлы"). Утилита в архиве.
Код кнопки дан на той же первой странице (пути, естественно, заменяются на свои). Про кавычки вокруг %WL вроде бы всё сказано ясно. Батник по ходу обсуждения модифицировался несколько раз (последняя версия — двумя постами выше). Как всем этим пользоваться, в общем виде объяснялось многократно. Пробовать, разумеется, надо сначала на каком-то тестовом каталоге, а не где попало.
А ещё очень советую перечитать обсуждение и убедиться, что для своих задач необходимо навести именно этот порядок, а не что-то другое.

#38:  Author: ZorKon71 PostPosted: Sun Sep 18, 2016 11:06
    —
Avada wrote:
ZorKon71
Какую "эту статью"?
Эту!

Avada wrote:
Где удалён файл? FixDate.exe не скачивается, а берётся из ...
По моему в тексте указаны более новые версии. Трудно понять какой программы, но я понял что FixDate.exe.

Avada wrote:
Пробовать, разумеется, надо сначала на каком-то тестовом каталоге, а не где попало.
А ещё очень советую перечитать обсуждение и убедиться, что для своих задач необходимо навести именно этот порядок, а не что-то другое.
Спасибо!
Только прежде чем засорять форум ругательствами, админ должен помочь, даже в глупых вопросах. И следить что бы их не задавали в связи с полным правильным описанием.

Подскажите пожалуйста где почитать про:
Quote:
Parameters: %WL
Для продолжения нажмите любую клавишу . . .

Спасибо.


Last edited by ZorKon71 on Sun Sep 18, 2016 11:31; edited 1 time in total

#39:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Sep 18, 2016 11:27
    —
ZorKon71
Это не статья, а тема. Используйте термины по их прямому назначению. Никаких более новых версий FixDate.exe в обсуждении не вижу. Последний пост автора с обратными ссылками на исправленные утилиту и батник — здесь.
Что касается позднейшей дописки, то я не админ, а модератор, и в качестве такового не нуждаюсь в указаниях, что мне следует делать, а что нет. Более того, попытки пререканий с модераторами на форуме у нас наказуемы. Прочитайте правила, получите замечание и больше так не делайте. Форум пока что засоряете вы, а я этому в меру сил препятствую.
А насчёт "где почитать" про параметр ответ вообще-то очевиден — в справке.

#40:  Author: ZorKon71 PostPosted: Sun Sep 18, 2016 15:36
    —
А что значит?
"Отказано в доступе.
Для продолжения нажмите любую клавишу . . .
"
Я под админом! Локально скопировал одну папку с несколькими файлами.
никаких запретов нет на файлах и папках...

#41:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Sep 20, 2016 14:06
    —
Чуть подпилил утилитку FixDate, теперь она позволяет и дату создания, и дату модификации ставить по самой старой или самой новой соответствующей дате, и сама поддерживает рекурсию.

Code:
MIME-Version: 1.0
Content-Type: application/octet-stream; name="FixDate.7z"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="FixDate.7z"

N3q8ryccAAMZWzZCHwUAAAAAAACEAAAAAAAAAKpH5mcAJpaOcAAX9+wFu+r0/5QBL0TvfOb17Ecn
X7+7eqMtfkHVkblcFP4qfmtIeTU0uISgwAa2PLz44abufz3+yMjHlQKXNrSzyeUWsyEgb6kRLSA2
Wfuj0OEcIXsWT+cN6dzCV74YZWypGsK1KMB1Vwe+TuLW6OwubUYRGBD5TuuL7gyxvc++mGJ35x8k
atBcFOpGjAagCX4DyhGN2k6Cl2NSKIf+GJhVIEoWb9WSKK+n/sD94EssIpm5cgcr0riKSvvNopfG
4f0KGNT1jCBEMwq13qR0/rahF644RaOo2nHr6sLdqcMO0yA7hrm/1lAG4/NRjsqvXsz9DAS7+R71
Ttmz79ZI3yr8SEvwMNnu4VfMuMRqqdaqrMP/xWUk8s2FQT6G6rMd3cdD15V/YrxVbREMk3wwSWB1
fJONgIqlT6coMIZp6wu9PeOTh68LKTGOR+2GOsz5EWWWXznwdSZCHZCp0pv58fp+mjCy+jAwXmks
jutYAGpEyCFGX1uUmGksB6vKTDuqjQ/ZZEkwCVCTnNM0Y/TCiKHrB3R2egbcZljFct809ZWR/iPg
u5Gj99hfWHBaT6y1p6GoZ2BrSrUxSSsRzrCoD2jqW9BBfnW7BAJZ1EeOyH8Jw8++NOIs+4sAbDNP
HLxWqxc7Nct56mQTdToc7JxYNffnaH2SqHmLj/gJe6RXwud/QgTz1UySbVEXQMuwkJN7RINjbKWF
MVA4xWmLo00gU/mR/gFhTxZsIbGt2B0cCBpnL1yy82tmlrzGZ1PXTvUXo07LtO4wvvSiK8wwCjaH
2vBzXpcFUduMq+apQcvQwHHyL2/Es54E6ELuKhWn5MjxssFPbOl2hH+HaoN4fVgFTKjFeYN6z30R
Lf5QderRQpERHrm3qXnTHgyQCKtUpNN1eYeE0LGHTtQ8NXG8Ay8D1tqHGPgFcn4h7l3nAcE824YB
6X0aEzOabSXjRz+TLYAD67eHJGtudqFkYbrwN0fscWDs5/CcskiY292h7AJezSA78aarG2BMWoVt
WoORDmOLuha9bkQRzx03Q4wR9HNdweZ9GiI5ymWPdZ+dX07tfhmMdz4xCz/Kw+mjKBuCquIITqon
k6OWM74kSZPu7NWMcl7314iZgW8pYobtPq92d3QZz6u0K1sLNXc6oYtsdaMJAyP9p7GJJcAQFqeo
pGpN1pYoHbv6JbfMfgJk/HZTFVjXucFc/xw6lQyTRGuPSRqde7zVoJy0QLQscAhajXXp80Q3WtUh
l8ShmJpa0L/lXLKNeO0DgQarPudIIaX4FLKkQEBhbFCMXuBXQLaSR+W9/whMStRV3xYLmjApplwi
E7PEsbyFrJaaWKhT6j1jbPV2OITBx3ZrtWDgH0V442OWzvyEXNRWZWgFnkgMPjwOWODZ37R7HleF
ZjI4MX7zu32kZq3PO5pEEUrKQjl/IuDHu9mKmrZ07XS0YHXbVkuV05+iOsN+nn+7ummhMGziIWfJ
rOJVEhFuA3uOuU18L0EbURH7H1Y3VxYH/v2/a4HbEDjNBzVt6hzSl+AFFAj+UQGPnUWRIF6tjGnC
s6DeBk9dNOzsnf2m5TPXAO8zKdM7m2yayi7r/iFKFXK34dMS2W3X7lPzu9NXyb5C4Po++9sDhJVU
nJfvZOqwqLP/gdWF0sPdVImbJt6nFb/bTYlx8DIYlYvE3Br1gRzEA53gx8kOYTAAAAD/1NunoAAA
YBsopAA2mtIQL/w2YMwAAGAXSKwATd7jeYjJiJlffiABBAYABAmE9wYQEgAHCwEABCMDAQEFXQAA
AQAjAwEBBV0AAAEAIwMBAQVdAAABABQDAwEbBAEFAAQBAwICBgEADBQYi9SMAAAICgFejuJNAAAF
AREZAEYAaQB4AEQAYQB0AGUALgBlAHgAZQAAABQKAQAz5ckIJBPSARUGAQAgAAAAAAA=



Надо указать параметр: /mo для установки самой старой даты модификации, /mn - для самой новой, и соответственно есть /co и /cn для даты создания. Сочетать режимы разных дат в одном запуске можно (например, /co /mn поставит самую раннюю дату создания и самую позднюю дату модификации); сочетать разные режимы для одной из дат бесполезно (например, в случае /co /cn параметр /co будет проигнорирован).

#42:  Author: ZorKon71 PostPosted: Tue Sep 20, 2016 15:16
    —
Спасибо!
Работает! Правда в счёт берёт не только файлы, но и подкаталоги внутри каталога. Но это может и правильно...

Спасибо!

#43:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Sep 20, 2016 15:54
    —
Да, даты каталогов учитываются наравне с датами файлов. В рекурсивном режиме это не проблема, т.к. даты каталогов предварительно обновляются, а в нерекурсивном, возможно, может быть не всегда удобно.



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