Изменить дату создания каталогов по дате входящих файлов

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

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

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

Сообщение Flasher »

sa писал(а):Или кому-то помогло?
Там свои хитрости с кавычками в батниках. Я пока только предполагаю, т.к. сам не проверял за ненадобностью использования. Если тебе не помогло, то уже предложение отклоняется. Подождём, что MVV напишет.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Да, в моем батнике косяк:

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

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

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

do call %0 go "%%f"
Исправил батник в соотв. посте.
Flasher писал(а):
c930 писал(а):из-за пробелов похоже в именах заданных каталогов.
А что мешает %WL заключить в кавычки?
Это не поможет, т.к. путь к файлу списка тотал при необходимости сам заключает в кавычки. А пути в файле списка - нет.
Win2k говорит, что FixDate.exe не является приложением Win32
Блин, и это хотел исправить. Проблема тут в том, что у Win2k версия 5.0, а 10-я студия ставит требуемую версию системы 5.01, и никак это не исправить (большую версию задать можно, а меньшую - нет). Я точно знаю, что программка пойдет на Win2k, поэтому можно тупо исправить пару байт в PE-заголовке. Файл в посте обновил.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

MVV писал(а):Исправил батник в соотв. посте.
А не нужно ещё в

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

"%~dp0FixDate.exe" %2\
вместо %2\ писать "%~2" :?:
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Batya писал(а):А не нужно ещё в

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

"%~dp0FixDate.exe" %2\
вместо %2\ писать "%~2" :?:
Не принципиально. Для получения параметра командной строки я использую давно написанную функцию, которая считает концом параметра первый пробел, не заключенный в кавычки, и удаляет из параметра все кавычки, так что строки D:"1 2""3 4"\5 и "D:\1 2\3 4\5" равнозначны.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

MVV писал(а):Для получения параметра командной строки я использую давно написанную функцию
И здесь же, как я понял, двойные слэши заменяются на одинарные?
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Нет, не заменяются. В этом нет необходимости. Системные функции прекрасно переваривают пути с двойными слэшами. :)

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

"D:\name with spaces\\another name with spaces\1 2 3"
"D:\name with spaces\\another name with spaces"
"D:\name with spaces\"
Для продолжения нажмите любую клавишу . . .
В выводе видны пути, передаваемые утилите - разве что без завершающего слэша. Утилита лишь приписывает в хвост \* для перебора элементов, и передает оригинальный путь функции открытия файла для установки даты.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

c930 писал(а):The procedure * could not be located in the DLL libintl3.dll
Хм. Я специально проверял – работает без длл'ек (xp sp3 rus)
С длл'ками
Брал отсюда
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Tol!k писал(а):..depositfiles.com
Здрасте..
Перезалил.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Ой. Оказывается, даже более новые версии этих длл'ек у меня уже лежали рядом с sed.exe :roll:
slide777
Сообщения: 3
Зарегистрирован: Чт мар 24, 2011 20:31

Сообщение slide777 »

Уважаемые кулхацкеры!

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

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

нашел Magic Attribute Pro 3 - там есть маска и последовательные инкременты декременты, но нет рандома :)
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

slide777
По поводу первых двух позиций — это стандартный функционал TC, реализуемый через стандартный же диалог изменения атрибутов. С использованием возможностей встроенного плагина tc. Разбираемся в диалоге и читаем справку.
Запрос на рандомные значения в диапазоне требует хотя бы минимальной аргументации в пользу их нужности. С конкретными примерами.
Даже самая богатая фантазия
Не представит себе наши безобразия.
slide777
Сообщения: 3
Зарегистрирован: Чт мар 24, 2011 20:31

Сообщение slide777 »

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

реальность:
собрал я архив документации сегодня, который эмулирует задним числом работу в прошлом для сами понимаете чего
нужно чтобы файлы и папки документации по датам были сэмулированы правдободобно :D
как будто действительно проект был сделан в таком то году в такое то рабочее время :)
реально нужная вещь
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

slide777 писал(а):с 12.05.2002 18:12:41 рандомно до 29.02.2004 19:03:17
с 1.1.2002 по 31.12.2004 без выходных

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

@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
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

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

@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
Срок можно задать с точностью хоть до месяца, хоть до дня.

:!: работает медленнно
slide777
Сообщения: 3
Зарегистрирован: Чт мар 24, 2011 20:31

Сообщение slide777 »

Спасибо ! :)
Ответить