Страница 36 из 52

Добавлено: Чт окт 06, 2016 16:13
myscience
Ага, теперь понял, что скрипт. В шапке просто не было слово VBS написано. Это же VBS?
Файлы в подпапках может переименовать?

Добавлено: Чт окт 06, 2016 18:24
Flasher
Да, vbs.
Flasher писал(а):Что он делает - написано в шапке
>>
' Восстановить имена файлов в структуре активного каталога
Снова Ваш КО.

Добавлено: Пн окт 10, 2016 14:22
Dimsok
Flasher
http://forum.wincmd.ru/viewpost.php?p=118491

Что поменять, чтобы переименовывал с сохранением в имени старого расширения? Например, если в архиве fb2 файл, получалось имя.fb2.zip.

И можно ли сделать обратный вариант? Переименовывать файл в архиве на имя архива, сохраняя оригинальное расширение.

Добавлено спустя 39 минут:
И можно ли сделать обратный вариант? Переименовывать файл в архиве на имя архива, сохраняя оригинальное расширение.
Уже не надо, решил кнопкой.

Добавлено: Пн окт 10, 2016 19:44
myscience
http://forum.wincmd.ru/viewpost.php?p=110356
Поправьте, что не так делаю с параметрами.
В папке есть файлы, куча подпапок с другими файлами.
В этой же папке лежит файл со списком имя файла *md5-хеш
Нужно вытащив имена при совпадении хеша файл со списком, переименовать
его, сохранив структуру каталогов.
Нужно переименовать все файлы, кроме самого списка.
Утилиту скопировал в С:\Programm files\Total commander\Utils\hashfile\hashfile.exe
В папраметры кнопки пишу:
*.* | *.txt;*.md5 -md5
При нажатии на кнопку не ругается, просто ничего не происходит.
Что я не учел? ТС 8.51

Добавлено: Пн окт 10, 2016 20:00
Flasher
Dimsok
См. п. 1 и свой ответ снизу. Сам же согласился. :?:

myscience
100500 раз писал, что примеры - это не пример. Примеры разделены "|".
Если нужно переименовать все файлы, то что в параметрах забыл этот кусок - "| *.txt;*.md5 -md5" ?
Читаем шапку внимательно и выполняем все пункты памятки!

Добавлено: Вт окт 11, 2016 13:46
myscience
Flasher писал(а):Читаем шапку внимательно и выполняем все пункты памятки!
Все выполнил, при нажатии кнопки ничего не происходит:
-путь запуска в редактировании кнопки сделал пустым
-в коде вписал путь к утилите, скопировал ее туда
HPath = """С:\Programm files\Total commander\Utils\hashfile\hashfile.exe"""
- в параметрах *.*
- в папке лежит файл *.md5
- кнопку нажимаю, когда на активной панели открыта папка с файлами и *.md5.

Добавлено: Вт окт 11, 2016 17:44
Flasher
HPath не надо было трогать. Там и так всё верно.
Programm files - это что за чудо-юдо?
Хэш файлы должны создаваться в синтаксисе ТС и быть одиночными.

P.S.: Дальше вести переписку в формате чата (без должной орфографии) придётся уже без моего участия.

Добавлено: Ср окт 12, 2016 11:48
Dimsok
Dimsok


См. п. 1 и свой ответ снизу. Сам же согласился.
Согласиться-то согласился, но цели-то разные могут быть, и запасной вариант не лишен.

Добавлено: Ср окт 12, 2016 12:36
myscience
Flasher писал(а):HPath не надо было трогать. Там и так всё верно.
Хэш файлы должны создаваться в синтаксисе ТС и быть одиночными.
Да, пробовал на одном файле с хешами для одной папки, пробовал не менять HPath, так и не заработало.
Хотя я просил Вас помочь с решением задачи именно для одного файла-списка имен файлов и md5 и нескольких подпапок.

Добавлено: Ср окт 12, 2016 13:01
Flasher
Dimsok писал(а):и запасной вариант не лишен.
Не знаю, чего он не лишён, но он был изначально. Вот его и стоило взять.
myscience писал(а):Да, пробовал на одном файле с хешами для одной папки, пробовал не менять HPath, так и не заработало.
Жду хэш на парочку файлов и сами файлы.
myscience писал(а):Хотя я просил Вас помочь с решением задачи именно для одного файла-списка имен файлов и md5 и нескольких подпапок.
Меня лично Вы не просили помогать (не считая неподтверждённой проблемы с расширением). Я лишь привёл решение в другом топике относительно исходной задачи сопоставления имён, а дальше указал на наличие альтернативного в отношении уже расчёта хэшей. Про несколько подпапок не писалось, речь велась о рекурсии (всех подпапках). Один хэш для файлов всей структуры ТС создаёт с относительными путями только в режиме без подкаталогов, иначе - только для папок-родителей, где имена пишутся без путей, пусть ТС и поддерживает с путями. Но как Вы собираетесь создавать один хэш с полными путями? Путём склейки? :?
Здешний скрипт и не описывался как тот, что работает с общим хэш-файлом. К тому же это было бы менее эффективно.

Добавлено: Ср окт 12, 2016 13:40
Dimsok
он был изначально. Вот его и стоило взять.
Так взял бы, если бы тогда нужен был такой. Но ты же старые версии не оставляешь.

Добавлено: Ср окт 12, 2016 13:41
Flasher
Так ты старую версию изначально тестировал. :)

Добавлено: Чт окт 13, 2016 12:15
myscience
Flasher писал(а):Но как Вы собираетесь создавать один хэш с полными путями? Путём склейки? :?
Здешний скрипт и не описывался как тот, что работает с общим хэш-файлом. К тому же это было бы менее эффективно.
У меня файл-таблица без путей, только хеш и имя. При совпадении md5, рассчитанного для файла, с табличным значением, файл переименовывается, но остается в тех же подкаталогах. Могу добавить колонку "Размер файла в байтах".

Добавлено: Чт окт 13, 2016 17:32
Flasher
Мы в этот топик переместились по одной причине:
myscience писал(а):Было бы совсем хорошо, если бы для файла с произвольным именем рассчитывался мд5 хеш, сравнивался с таблицей соответствия, и в случае их совпадения, файл бы переименовывался.
Расчёт хэша - это долгая операция, в её случае быстрый парсинг большой таблицы особой выгоды не принесёт.
Если хотите скоростей, то от произвольных имён придётся отказаться и вернуться к решению в исходном топике.

Добавлено: Чт окт 13, 2016 23:52
myscience
Думаю добавить колонку размер файла, и при его совпадении проверять хеш, и уже тогда переименовывать.
К тому же, сравниваемых файлов на два-три порядка меньше, чем строк в файле-таблице.