Quote: |
Достаточно просто. Вечером могу сделать. |
LonerD wrote: |
Переложите, пожалуйста, утилитку - указанного сайта уже не существует. |
LonerD wrote: |
Просьба учесть также возможность копирования не только атрибутов как таковых, но и даты изменения файла |
Quote: |
Интересно, с чего же я её тогда несколько минут назад благополучно скачал. |
LonerD wrote: |
Просьба учесть также возможность копирования не только атрибутов как таковых, но и даты изменения файла, а также переноса атрибутов/времени с указанного файла на несколько выделенных файлов в противоположной панели. |
LonerD wrote: |
Неплохо бы предусмотреть копирование атрибутов с файла под курсором на все выделенные файлы, которые находятся в той же самой панели (если файлы лежит рядом, то не очень удобно и не очень логично открывать новую панель ради перенесения атрибутов). |
Quote: |
Не понял написанное в скобках. Зачем открывать новую панель? |
Code: |
@echo off &setlocal enableextensions |
Code: |
TOTALCMD#BAR#DATA |
Вахмурка wrote: |
Проверил - работает. |
oshizelly wrote: |
заранее заданные атрибуты (скажем, дата создания и дата модификации файла) переносятся |
Вахмурка wrote: |
Да мне и ни к чему. |
Quote: |
Тогда я не понимаю, в чём похвальба |
Quote: |
исходная задача в полном смысле не решена |
Quote: |
В TC можно "взять" атрибуты файла на активной панели и присвоить их выделенному файлу (или файлам) на пассивной панели |
Quote: |
Ты же отвечал на вопрос топикстартера. |
Quote: |
Нельзя ли для менее продвинутых юзеров хотя бы парой слов пояснить, что с этим батником делать? |
Quote: |
F1 и описания действий тут вообще ни к чему. Есть памятка |
Вахмурка wrote: |
Вот исходная задача |
Вахмурка wrote: |
Назови памяткой, документацией, манулом, справкой - суть не в этом. |
Вахмурка wrote: |
А вот как его прикрутить к Тоталу - будьте любезны изучать матчасть. |
Quote: |
Так там о привязке сценариев ни слова |
Quote: |
You must give the extensions .com and .bat |
Quote: |
LonerD, а менять нужно только даты? |
Quote: |
менять нужно только даты? Остальные атрибуты не трогаем? |
Quote: |
Присваивает дату и время создания и изменения файлов в противоположной панели (источник) [url]одноименным[/url] файлам в текущей панели (приемник) |
LonerD wrote: |
Неплохо бы предусмотреть копирование атрибутов с файла под курсором на все выделенные файлы, которые находятся в той же самой панели |
LonerD wrote: |
Мне достаточно только переноса даты.
Весьма желательна работа не только с файлами как таковыми - но и с каталогами |
Quote: |
для переноса даты на выделенные файлы/каталоги, достаточно будет в диалоге выбрать шаблон (если он ещё не был выбран ранее), нажать кнопки “Загрузить из файла под курсором” и OK. |
oshizelly wrote: |
хотелось бы обойтись еще меньшим количеством жимокликов |
Code: |
'================================================================================== |
Flasher wrote: |
Видимо, придётся утилиту цеплять. |
Code: |
TOTALCMD#BAR#DATA |
Flasher wrote: |
Далее смотрим по cm_SetAttrib |
Flasher wrote: |
А как же будет работать, если копируется неверная кнопка вместо моей? |
oshizelly wrote: |
Да нет, я с TC 8.01 как раз сначала пробовал оригинальный синтаксис вот так:
setfilefoldertime %V "" "" "01-01-2012 08:08:08" "01-01-2012 08:08:08" |
oshizelly wrote: |
Сдвиг на 1 час - это явно что-то с поясным временем связано. |
Flasher wrote: |
Оригинальный синтаксис написан в моей кнопке. Не надо никаких самостоятельных экспериментов. |
Flasher wrote: |
Откуда тут связь с часовыми поясами, если мы явно задаём конкретное время? |
oshizelly wrote: |
В чем отличие от указанного там синтаксиса - не понимаю |
Flasher wrote: |
А битность у ТС не 64, случаем? |
Flasher wrote: |
, но последний параметр ничего не даст, он будет проигнорирован. Даты всего 3, а не 4. |
oshizelly wrote: |
Нет, TC 8.01 x32. Кстати, ось - Win XP 32, хотя это вряд ли имеет значение. |
oshizelly wrote: |
Конечно, три! Но у тебя в образце вообще только одна дата - это create time (дата создания). |
oshizelly wrote: |
то будет вот так |
Flasher wrote: |
Не создания, а доступа, в том то и дело. |
oshizelly wrote: |
Рассказывать не буду, чтобы не стать посмешищем всего интернета. |
oshizelly wrote: |
Так вот примерно.. |
oshizelly wrote: |
Кстати, важное замечание |
Flasher wrote: |
Может, тогда ну его, доступ? |
Code: |
'================================================================================== |
Flasher wrote: |
Пробуйте. |
Flasher wrote: |
Изменение дат и времени выбранных файлов активной панели |
oshizelly wrote: |
А тут какой алгоритм? Надо файлы предварительно выделять явным образом? |
Flasher wrote: |
Активной, потому что так проще (не надо регистрировать доп. ActiveX-компонент), чтобы прочесть выбранный список другой панели... В шапке скрипта приведёны примеры указания файла (пассивная/активная панель), с которого читаются даты. |
Flasher wrote: |
Чтобы видеть, на каком курсоре стоит файл в пассивной панели, используй соотв. настройку для TC (wincmd.ini либо TwinKey). |
oshizelly wrote: |
Я счастлив до полного изнеможения! Спасибо! |
oshizelly wrote: |
Так можно скрипт так настроить, чтобы в качестве источника при копировании значений штампом времени использовался файл в активной панели и копировалось на файл в пассивной? |
oshizelly wrote: |
А как то же самое сделать штатными средствами TC? |
Flasher wrote: |
Нет. Название скрипта уже это не подразумевает. Не в пассивной, а в активной, то, что запрашивал LonerD. Т.е. изменяемые файлы всё время должны быть в активной. |
Flasher wrote: |
Дык, а чего поиском не пользуемся? |
Code: |
For Each F in Split(FSO.GetFile(List).OpenAsTextStream(1, -1).ReadAll, L) |
Code: |
WSH.Run Nircmd & " setfilefoldertime """ & List & """ " & P |
oshizelly wrote: |
Всегда есть надежда |
Flasher wrote: |
Да, для одного файла я, конечно, могу предложить замену, это просто. |
Quote: |
то, что запрашивал LonerD |
LonerD wrote: |
Даты каталогов не изменяются. Скрипт обрабатывает только файлы. |
LonerD wrote: |
потому что заранее неизвестно с чем именно придётся работать |
LonerD wrote: |
но если будет желание - можешь добавить в публичный скрипт такой вариант универсализации |
LonerD wrote: |
В идеале ещё бы рекурсию предусмотреть (опционально с доп.параметром) - если выделен каталог, то меняются и даты всех файлов в нём. |
Quote: |
Т.е. так только в x64? И с учётом последней правки? |
Quote: |
Не, особо нет желания. Запросы не люблю, это раз, и потом - Хелпер. Тебя он устроит? |
LonerD wrote: |
Проверял под Win7x64 и TC 8.01x32. Даты у папок не меняются. |
LonerD wrote: |
хэлпер совершенно ни к чему. |
Flasher wrote: |
мы в Автоматизации, а не Общих вопросах. |
LonerD wrote: |
Даты каталогов не изменяются. Скрипт обрабатывает только файлы. |
LonerD wrote: |
тут запрос простейший, сам справлюсь |
LonerD wrote: |
иначе получается две команды - одна для активной, вторая для пассивной панели. |
Quote: |
Справился? |
Code: |
File = .Item(0) : List = .Item(1) : Count = .Item(2) |
Code: |
FileA = .Item(0) : File = .Item(1) : List = .Item(2) : Count = .Item(3) : Source = .Item(4) |
Code: |
If Source = 0 Then Source = InputBox("Enter Source File or Dir:" & vbNewLine &_ |
Code: |
' Параметры: %V %T%M %WL <индекс замены> <индекс файла-источника> |
Quote: |
случая с выделенными файлами в пассивной панели |
LonerD wrote: |
Каким образом "рисовать окно с кнопками Пассивная/Активная" и присваивать переменной определённое значение при нажатии на одну или вторую кнопку - пока не знаю. |
LonerD wrote: |
"Enter Source File or Dir:" & vbNewLine &_
"1 - Source file in Target panel" |
Code: |
Do Until Source = 1 Or Source = 2 |
LonerD wrote: |
Кстати, а если без Хэлпера, то можно ведь обойтись и nircmd. Прописать выполнение команды Nircmd sendkeypress tab
перед и после присвоения параметров. |
oshizelly wrote: |
...Volniy написал замечательную утилитку CopyAttr.exe.... Однако TC за это время научился работать с юникодными именами файлов, а эта утилита - нет... |
Volniy wrote: |
Понимаю, что это нафик никому не нужно, |
oshizelly wrote: |
перенос атрибутов не срабатывает, если любой из пары файлов содержит символы юникода (проверялось под Windows XP). Пишет, соответственно, "Ошибка получения атрибутов искодного файла! Ошибка: 2" и "Ошибка установки атрибутов целевого файла! Ошибка: 2"
Или, может, это у меня в системе что-то криво работает? |
Volniy wrote: |
Как воссоздать мне у себя подобную ситуацию? Я бы сам посмотрел, что там не так. |
Volniy wrote: |
Попробуй файлы с именами без пробелов. Может неправильно обрабатывались, хз. |
Volniy wrote: |
Файл ничем не упакован. Абсолютно. |
oshizelly wrote: |
скрипт (обе версии) не срабатывает, если имя целевого файла содержит символы юникода (проверялось под Windows XP). |
Flasher wrote: |
У меня всё работает (XP/7 x32). |
Flasher wrote: |
2. äüö.jpg - файл, с которого берётся дата. |
Quote: |
скрипт (обе версии) не срабатывает, если имя целевого файла содержит символы юникода (проверялось под Windows XP). Если юникодные символы содержатся только в исходном файле, то скрипт работает. |
oshizelly wrote: |
Тогда добавляем в имя файла пробел и любой символ из любой другой кодовой таблицы, например, немецкие диакритики ä, ü, ö. И пытаемся перенести атрибуты. |
Volniy wrote: |
Как вообще при тестах у тебя исполняется программа? Из командной строки Тотала? |
Code: |
param50=""%p%n" "%t%m"" |
oshizelly wrote: |
""%p%n" "%t%m"" |
sa wrote: |
А если вместо этого %P%N %T%M записать? |
Flasher wrote: |
Дату модификации неправильно меняет. |
oshizelly wrote: |
В чём именно выражается неправильность? |
! | Avada: |
Оверквотинг (включая полное цитирование предыдущего поста, содержащего цитату) запрещён правилами форума. Пост отредактирован. |
Flasher wrote: |
Закономерность не выявил. |
Flasher wrote: |
Volniy Дату модификации неправильно меняет. |
Volniy wrote: |
Поставлена у тебя галочка |
Flasher wrote: |
Проблема исключительно nircmd. Тут уже ничего не поделать, кроме как не потревожить автора. |
Volniy wrote: |
Скорее всего имел место быть какой-то дополнительный доступ к файлу |
oshizelly wrote: |
Только я вряд ли смогу внятно описать проблему |
oshizelly wrote: |
На первый взгляд вроде бы все правильно |
Вахмурка wrote: |
2Volniy
avast нашел в этом файле угрозу "Win32:Trojan-gen". Это нормально? |
Volniy wrote: |
А вот фича копирования атрибутов директорий кому-нить может понадобиться? |
Volniy wrote: |
в коде оставалась еще одна, походу, не юникодная функция |
Quote: |
а вот не понял что насчет обработки списков? Это как? |
Volniy wrote: |
параметры командной строки должны быть введены вручную |
Code: |
? %P%N %T%M |
Volniy wrote: |
пишу даже не прочитав полностью этой темы |
sa wrote: | ||
...приходится убирать пробел перед первым путём. Строка параметров такая:
|
Quote: |
? В качестве первого параметра вызывает перед стартом программы диалоговое окно, содержащее указанные далее параметры. Вы можете изменить их перед стартом программы и даже отменить запуск.
|
Code: |
?%P%N %T%M |
sa wrote: |
С предыдущей версией программы (а также и неюникодным её вариантом) можно было просто нажать OK, а теперь приходится убирать пробел перед первым путём. |
Code: |
?%P%N %T%M |
Quote: |
Согласно описанию параметров: |
Quote: |
? В качестве первого символа параметров вызывает перед стартом программы диалоговое окно, содержащее указанные далее параметры. Вы можете изменить их перед стартом программы и даже отменить запуск.
|
Rodny wrote: |
что мало какой программе нравится. |
oshizelly wrote: |
Ладно, попробую написать автору Nircmd. |
Volniy wrote: |
Потом привинчу выбор копируемых атрибутов, наверное список и т.д., уж как пойдет. |
Flasher wrote: |
Ну, что? Как успехи? |
oshizelly wrote: |
если кто-то еще напишет |
oshizelly wrote: |
но, как уже выяснили выше http://forum.wincmd.ru/viewpost.php?p=95884 , Nircmd.exe игнорирует файлы с юникодными символами и проблемами в имени. (В промежутке вышло две новых версии nircmd, но баг так и остался.) |
Flasher wrote: |
Либо GNU-Touch (но что-то с ней неохота). |
Quote: |
Report bugs to <bug-coreutils@gnu.org> |
Tol!k wrote: |
http://www.touchdotexe.com/ |
Flasher wrote: |
Мёртвый, на продажу... |
Code: |
TOTALCMD#BAR#DATA |
Tol!k wrote: |
с Юникодом... работает |
Quote: |
http://rghost.ru/40623688 |
Quote: |
Помню, что сохранял себе, но не нашёл. А в чём задача? |
Code: |
'============================ VBS ============================= |
Dimsok wrote: |
Ни у кого нет в наличии? |
Code: |
'•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• |
Dimsok wrote: |
Ключ рекурсии что есть, что нет. |
Dimsok wrote: |
Всё, с новой версией без окон. |
Quote: |
NSCopy 2.3 beta
! Теперь атрибуты и дата файла (папки) копируются всегда, даже если файл (папка) уже скопирован! |
Quote: |
' Параметры: "<путь к файлу>" %WL <индекс замены> <флаг рекурсии: 1> |
werst wrote: |
можно ли сделать, чтобы атрибуты папок и каталогов на разделе HDD ,записать в какой-нибудь файл и потом восстановить в случае чего с помощью скрипта ? |
werst wrote: |
Пробовал применить скрипт - тот что на 3 странице |
werst wrote: |
Так получается, что мне этот скрипт не подойдет? |
werst wrote: |
но там только можно синхонизировать время самих файлов, а не папок. |
Quote: |
Скопируются метки даты и времени как файлов, так и папок (кроме тех папок, где в наличии окажутся только подпапки, но не будет ни одного файла). |
Quote: |
проблема там может быть только одна, она мной указана - неверный путь в шапке до утилиты |
Quote: |
Кстати, а где и кто скрипт-то посоветовал? |
werst wrote: |
хотя флаг рекурсии стоит в параметре %V %T%M 7 1 |
Quote: |
Опять первые два неверно указаны. |
Code: |
For Each F in Split(FSO.GetFile(List).OpenAsTextStream(1, -1).ReadAll, L) |
Code: |
If FSO.FolderExists(List) Then |
werst wrote: |
последней правкой: List = Left ,нет |
output generated using printer-friendly topic mod. All times are GMT + 4 Hours