Страница 1 из 11
Автоматизация переноса атрибутов и времени изменения файлов
Добавлено: Вт сен 04, 2012 14:33
oshizelly
В TC можно "взять" атрибуты файла на активной панели и присвоить их выделенному файлу (или файлам) на пассивной панели. Но делать это долго и неудобно, особенно с клавиатуры: вызвать диалог изменения атрибутов и долго и мучительно прыгать там табом между разными полями ввода и кнопками (поскольку акселераторов не предусмотрено). Та ещё морока...
В 2004-м году уважаемый Volniy написал замечательную утилитку CopyAttr.exe (
http://volniy.nm.ru/copyattr.zip) размером 4 KB, которая по такому алгоритму копировала время создания и модификации файлов. Я приделал к ней хоткей через пользовательские команды, и восемь лет с благодарностью вспоминал автора. Однако TC за это время научился работать с юникодными именами файлов, а эта утилита - нет... Опять же появился аналогичный штатный функционал в самом TC, хоть и крайне неудобный в использовании.
Так вот, нельзя ли эту операцию как-то автоматизировать? В идеале, хочется так: жмёшь хоткей или кнопку - и заранее заданные атрибуты (скажем, дата создания и дата модификации файла) переносятся с выделенного файла в активной панели на выделенный файл в пассивной панели.
Заранее спасибо!
Добавлено: Вт сен 04, 2012 15:57
Flasher
Достаточно просто. Вечером могу сделать.
Добавлено: Вт сен 04, 2012 16:19
LonerD
oshizelly
Переложите, пожалуйста, утилитку - указанного сайта уже не существует.
Достаточно просто. Вечером могу сделать.
У меня тоже в последнее время созрело желание заиметь такую утилитку или скрипт, но ещё не успел зареквестить
Просьба учесть также возможность копирования не только атрибутов как таковых, но и даты изменения файла, а также переноса атрибутов/времени с указанного файла на
несколько выделенных файлов в противоположной панели.
Неплохо бы предусмотреть копирование атрибутов с файла под курсором на все выделенные файлы, которые находятся в той же самой панели (если файлы лежит рядом, то не очень удобно и не очень логично открывать новую панель ради перенесения атрибутов).
Добавлено: Вт сен 04, 2012 16:32
Avada
LonerD писал(а):Переложите, пожалуйста, утилитку - указанного сайта уже не существует.
Интересно, с чего же я её тогда несколько минут назад благополучно скачал.

Добавлено: Вт сен 04, 2012 16:52
oshizelly
LonerD писал(а):Просьба учесть также возможность копирования не только атрибутов как таковых, но и даты изменения файла
Собственно, я тоже как раз именно копирование даты просил. И утилита
Volniy именно это делала. Да и вряд ли кому-то понадобится копировать с одного файла на другой, например, атрибут System или Hidden
Остальные просьбы тоже поддерживаю.
Добавлено: Вт сен 04, 2012 17:22
LonerD
Интересно, с чего же я её тогда несколько минут назад благополучно скачал.
Это тонкий намёк чтобы я сам прошёл квест?
Я его прошёл.
Просто кликнуть на ссылку в первом посте и скачать, разумеется, не получается - открывается сайт qip.ru и ошибка 404. "Сохранить как" в браузере - сохраняет htm-страничку.
А вот если скопировать адрес ссылки, потом вставить его в новом окошке, - то файл скачивается. Хитро придумано, хотя и не понятно для чего такая хитрость.
Добавлено: Вт сен 04, 2012 18:09
Flasher
LonerD писал(а):Просьба учесть также возможность копирования не только атрибутов как таковых, но и даты изменения файла, а также переноса атрибутов/времени с указанного файла на несколько выделенных файлов в противоположной панели.
Да в голове сразу такая мысль промелькнула. Не забывай, что для двух панелей хелпер нужен.
LonerD писал(а):Неплохо бы предусмотреть копирование атрибутов с файла под курсором на все выделенные файлы, которые находятся в той же самой панели (если файлы лежит рядом, то не очень удобно и не очень логично открывать новую панель ради перенесения атрибутов).
Не понял написанное в скобках. Зачем открывать новую панель?
Если есть свободное время, можешь пока
потренироваться.
Добавлено: Вт сен 04, 2012 18:25
Avada
LonerD
У меня, когда я отвечал с работы, как-то квест попроще вышел: именно что просто щёлкнул по ссылке и скачал через Download Master. А вот сейчас так не выходит, надо действительно копировать адрес.
P.S. А вот сейчас опять нормально закачивается... Так что в общем и целом ссылка рабочая.
Добавлено: Вт сен 04, 2012 21:16
LonerD
Не понял написанное в скобках. Зачем открывать новую панель?
В запросе была фраза: заданные атрибуты... переносятся с выделенного файла в активной панели на выделенный файл в пассивной панели.
Но если два файла лежат в рядом в одном каталоге, то для такого переноса (с активной панели на пассивную), получается, нужно открывать новую вкладку с этим же каталогом на другой панели. А это уже не очень удобно
Я же прошу реализовать возможность переносить атрибуты не только на выделенные файлы пассивной панели, но и на выделенные файлы активной панели (то есть когда файл, с которого считываются атрибуты и файлы, на которые атрибуты переносятся, находятся на одной панели).
Добавлено: Вт сен 04, 2012 21:41
Flasher
LonerD
Да я прекрасно понял, о чём ты просишь. Я не понял необходимости открывать новую вкладку в другой панели. Зачем открывать, если уже открыто то, что нужно? По крайней мере мне это так представляется. А выбор панели - это вообще не проблема. Всё будет.
Насчёт сегодня уже не обещаю (вернусь под ночь).
Добавлено: Вт сен 04, 2012 22:43
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
Добавлено: Ср сен 05, 2012 11:04
oshizelly
Tol!k
Нельзя ли для менее продвинутых юзеров хотя бы парой слов пояснить, что с этим батником делать? И каковы ожидаемые результаты? На всякий случай обращаю внимание, что речь идёт не столько об атрибутах файла в классическом понимании (A/R/H/S/F), сколько о переносе времени создания и модификации файла на другой файл.
Добавлено: Ср сен 05, 2012 15:31
Вахмурка
2
oshizelly
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, как всегда, красавец.
Добавлено: Ср сен 05, 2012 17:04
Flasher
Вахмурка писал(а):Проверил - работает.
Что работает? Это?:
oshizelly писал(а):заранее заданные атрибуты (скажем, дата создания и дата модификации файла) переносятся
Добавлено: Ср сен 05, 2012 17:23
Вахмурка
Нет, просто атрибуты. Дата/время не копируются. Да мне и
ни к чему. Что же касается "заранее выбранных", то можно один раз наплодить файлов с разными наборами атрибутов (скажем, создать файл rh.ext с атрибутами readonly и hidden), сделать для него кнопочку с вызовом батника и жать при необходимости. То есть будет некое число файлов (недосуг сейчас считать по формулам комбинаторики) и соответствующее число кнопок на панели.
Утилита от
Volniy работает только с одним файлом.
И вообще, я тупо излагал содержимое документации тому, кому лень нажать F1.