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

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

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

Аватара пользователя
oshizelly
Сообщения: 52
Зарегистрирован: Вт сен 04, 2012 14:08

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

Сообщение oshizelly »

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

В 2004-м году уважаемый Volniy написал замечательную утилитку CopyAttr.exe (http://volniy.nm.ru/copyattr.zip) размером 4 KB, которая по такому алгоритму копировала время создания и модификации файлов. Я приделал к ней хоткей через пользовательские команды, и восемь лет с благодарностью вспоминал автора. Однако TC за это время научился работать с юникодными именами файлов, а эта утилита - нет... Опять же появился аналогичный штатный функционал в самом TC, хоть и крайне неудобный в использовании.

Так вот, нельзя ли эту операцию как-то автоматизировать? В идеале, хочется так: жмёшь хоткей или кнопку - и заранее заданные атрибуты (скажем, дата создания и дата модификации файла) переносятся с выделенного файла в активной панели на выделенный файл в пассивной панели.

Заранее спасибо!
Последний раз редактировалось oshizelly Ср сен 05, 2012 21:07, всего редактировалось 2 раза.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Достаточно просто. Вечером могу сделать.
Аватара пользователя
LonerD
Сообщения: 1173
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

oshizelly
Переложите, пожалуйста, утилитку - указанного сайта уже не существует.
Достаточно просто. Вечером могу сделать.
У меня тоже в последнее время созрело желание заиметь такую утилитку или скрипт, но ещё не успел зареквестить :)
Просьба учесть также возможность копирования не только атрибутов как таковых, но и даты изменения файла, а также переноса атрибутов/времени с указанного файла на несколько выделенных файлов в противоположной панели.

Неплохо бы предусмотреть копирование атрибутов с файла под курсором на все выделенные файлы, которые находятся в той же самой панели (если файлы лежит рядом, то не очень удобно и не очень логично открывать новую панель ради перенесения атрибутов).
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

LonerD писал(а):Переложите, пожалуйста, утилитку - указанного сайта уже не существует.
Интересно, с чего же я её тогда несколько минут назад благополучно скачал. :wink:
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
oshizelly
Сообщения: 52
Зарегистрирован: Вт сен 04, 2012 14:08

Сообщение oshizelly »

LonerD писал(а):Просьба учесть также возможность копирования не только атрибутов как таковых, но и даты изменения файла
Собственно, я тоже как раз именно копирование даты просил. И утилита Volniy именно это делала. Да и вряд ли кому-то понадобится копировать с одного файла на другой, например, атрибут System или Hidden :lol:

Остальные просьбы тоже поддерживаю.
Аватара пользователя
LonerD
Сообщения: 1173
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

Интересно, с чего же я её тогда несколько минут назад благополучно скачал.
Это тонкий намёк чтобы я сам прошёл квест? :)
Я его прошёл.
Просто кликнуть на ссылку в первом посте и скачать, разумеется, не получается - открывается сайт qip.ru и ошибка 404. "Сохранить как" в браузере - сохраняет htm-страничку.
А вот если скопировать адрес ссылки, потом вставить его в новом окошке, - то файл скачивается. Хитро придумано, хотя и не понятно для чего такая хитрость.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

LonerD писал(а):Просьба учесть также возможность копирования не только атрибутов как таковых, но и даты изменения файла, а также переноса атрибутов/времени с указанного файла на несколько выделенных файлов в противоположной панели.
Да в голове сразу такая мысль промелькнула. Не забывай, что для двух панелей хелпер нужен.
LonerD писал(а):Неплохо бы предусмотреть копирование атрибутов с файла под курсором на все выделенные файлы, которые находятся в той же самой панели (если файлы лежит рядом, то не очень удобно и не очень логично открывать новую панель ради перенесения атрибутов).
Не понял написанное в скобках. Зачем открывать новую панель?

Если есть свободное время, можешь пока потренироваться.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

LonerD
У меня, когда я отвечал с работы, как-то квест попроще вышел: именно что просто щёлкнул по ссылке и скачал через Download Master. А вот сейчас так не выходит, надо действительно копировать адрес.
P.S. А вот сейчас опять нормально закачивается... Так что в общем и целом ссылка рабочая.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
LonerD
Сообщения: 1173
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

Не понял написанное в скобках. Зачем открывать новую панель?
В запросе была фраза: заданные атрибуты... переносятся с выделенного файла в активной панели на выделенный файл в пассивной панели.

Но если два файла лежат в рядом в одном каталоге, то для такого переноса (с активной панели на пассивную), получается, нужно открывать новую вкладку с этим же каталогом на другой панели. А это уже не очень удобно :roll:

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

Сообщение Flasher »

LonerD
Да я прекрасно понял, о чём ты просишь. Я не понял необходимости открывать новую вкладку в другой панели. Зачем открывать, если уже открыто то, что нужно? По крайней мере мне это так представляется. А выбор панели - это вообще не проблема. Всё будет.

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

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

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

@echo off &setlocal enableextensions
::	Выделенным файлам присвоить атрибуты файла с пассивной панели
::	Параметры:	"%WL" %T%M
::	Автор:	Tol!k

call :attr "%~2"
for /f "delims=" %%f in ('type "%~1"') do attrib %#% "%%f"
goto :eof

:attr
for /f "delims=" %%a in ('attrib "%~1"') do set "attr=%%a"
setlocal enabledelayedexpansion
set "attr=!attr:~0,10!"
for /l %%i in (0,1,9) do set "#=!#! +!attr:~%%i,1! "
endlocal &set "#=%#: + =%"
goto :eof
Аватара пользователя
oshizelly
Сообщения: 52
Зарегистрирован: Вт сен 04, 2012 14:08

Сообщение oshizelly »

Tol!k
Нельзя ли для менее продвинутых юзеров хотя бы парой слов пояснить, что с этим батником делать? И каковы ожидаемые результаты? На всякий случай обращаю внимание, что речь идёт не столько об атрибутах файла в классическом понимании (A/R/H/S/F), сколько о переносе времени создания и модификации файла на другой файл.
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

2oshizelly
1) Скопировать это в буфер:

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

TOTALCMD#BAR#DATA
c:\user\Batches\CopyAttr.bat
"%WL" %T%M
E:\Windows\System32\imageres.dll,-68
CopyAttr (Выделенным файлам присвоить атрибуты файла с %T)
c:\user\Batches\

-1
2) Навести курсор на свободное место на панели;
3) Правая кнопка мыши и "Paste";
4) Навести крысу на появившуюся кнопку и в меню по правой кнопке выбрать "Change...";
5) Отредактировать путь к батнику, оный к иконке, и описание;
6) Батник Tol!k'а сохранить по соответствующему пути.
7) Установить курсор на файл-образец на пассивной панели;
8) Выделить файл(ы) на активной панели;
9) Нажать кнопку.

Проверил - работает. Tol!k, как всегда, красавец.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Вахмурка писал(а):Проверил - работает.
Что работает? Это?:
oshizelly писал(а):заранее заданные атрибуты (скажем, дата создания и дата модификации файла) переносятся
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Нет, просто атрибуты. Дата/время не копируются. Да мне и ни к чему. Что же касается "заранее выбранных", то можно один раз наплодить файлов с разными наборами атрибутов (скажем, создать файл rh.ext с атрибутами readonly и hidden), сделать для него кнопочку с вызовом батника и жать при необходимости. То есть будет некое число файлов (недосуг сейчас считать по формулам комбинаторики) и соответствующее число кнопок на панели.
Утилита от Volniy работает только с одним файлом.
И вообще, я тупо излагал содержимое документации тому, кому лень нажать F1.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Ответить