Умная автозамена при перемещении
У меня есть такая структура файлов:
_export_ ------folder-01 -------------MATERIALS ---------------------material-00.mat ---------------------material-03.mat ---------------------material-....mat -------------IMAGES ---------------------image-08.jpg ---------------------image-02.jpg ---------------------image-....jpg -------------NEXT-FOLDER ------folder-02 -------------MATERIALS ---------------------material-01.mat ---------------------material-02.mat ---------------------material-....mat -------------IMAGES ---------------------image-00.jpg ---------------------image-02.jpg ---------------------image-....jpg -------------NEXT-FOLDER Задача такая: нужно чтобы папки MATERIALS, IMAGES, NEXT-FOLDER (папок может быть и больше) перемещались бы на два уровня выше (в папку расположения _export_) и сливались бы в одну (каждая в свою). Однако есть нюанс: могут быть разные файлы с одинаковыми именами, как например image-02.jpg (в папках IMAGES). Так вот нужно проверить их отличие и если они отличаются дописать к последнему имя папки folder-02 (либо folder-01, в зависимости от порядка сравнения). Так же добавить прогресс-бар выполнения скрипта (если возможно то с отображением обрабатываемых в данный момент имён файлов). Эта задача была блестяще выполнена в этой теме товарищем amel27'ом, в сообщени #87 последний рабочий скрипт. Хочется просто красивое GUI. |
Цитата:
|
Точно знаю, что скрипт cmd сравнивал файлы побайтно, незнаю как это хэш или не хэш
|
Tosyk,
Давайте определимся. 1. Вам нужно окно, в котором Вы можете выбирать папку для обработки? Или папка всегда одна и та же?. 2. Уровень вложенности нужно менять (например, 2-5)? Или всегда 2? 3. Нужны опции удаления исходных файлов? Папок? Или только копирования? 4. Сравнение файлов по размеру или по дате создания-изменения (быстрее, но два файла, содержащие 123 и 345 имеют одинаковый размер)? По MD5 (MD2, MD4, SHA1, ... с возможностью выбора сравнения) (медленнее, но надежнее)? 5. Нужна опция ведения лог-файла или достаточно результаты вывести на экран? 6. В конечных папках файлы одинакового расширения? Или при поиске-перемещении это без разницы? Или нужны опции выбора по расширениям? 7. Пока все вопросы :) |
Цитата:
|
madmasles,
давайте :) 1 - папка всегда одна и та же 2 - вложенность всегда 2, именно такая структура как я написал в первом посте 3 - как написано в теме "перемещение", т.е. да, удаление нужно (хотя конечно имеется ввиду перемещение) 4 - побайтно конечно надёжнее, но и скорость важна, иногда количество файло достигает нескольких сотен тысяч, и они далеко не маленькие, средний размер - 3 мб, есть ли возможность определить скорость при выбранном способе: размер либо MD5? 5 - думаю это очень полезно, как и результаты. 6 - везде где я встречал всегда расширения одинаковы, однако я не удивлюсь если попадётся, что-то необычное Цитата:
у меня один вопрос: можно ли в такой скрипт (знаю что из него можно собрать exe, так вот в exe получается) зашить программу (которая есть - консольная, без gui) и дописать к этой программе функцию исполнения с параметрами перед основным скриптом? |
Tosyk,
Начнем с конца. :) "Зашить" программу и запустить ее с нужными параметрами можно. Параметры эти всегда одинаковые или зависят от чего-то? Их выбор нужен? Нужно ли читать вывод из этой консольной программы и связаны как-то наши дальнейшие действия с тем, что она сделает? По п.4 предлагаю проверять по очереди размер - дата - MD5. |
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
1. Не совпадает размер - перемещаем с переименованием. 2. Если совпадает размер проверяем время создания(изменения) - не совпадает - перемещаем с переименованием. 3. И только если совпадают п.1 и п.2, проверяем MD5. :) |
Цитата:
Цитата:
http://dl.dropbox.com/u/9919707/blog...net/umodel.zip а вот строка: Код:
umodel.exe -export -game=aa3 -all -out=.\_export_ а также добавляться параметры: nostat, noanim, notex сэмпл файл: http://dl.dropbox.com/u/9919707/blog...AA_Main_UI.upk |
Цитата:
|
Применить на него вот такой код:
Код:
for /f "tokens=*" %%a in ('dir /b /s *.*') do umodel.exe -export -nostat -game=aa3 -all -out=.\_export_ "%%a" |
Цитата:
Код:
for /f "tokens=*" %%a in ('dir /b /s *.*') do umodel.exe -export -nostat -game=aa3 -all>read.txt |
а куда эта часть пропала?:
Код:
-out=.\_export_ "%%a" Код:
for /f "tokens=*" %%a in ('dir /b /s *.*') do umodel.exe -export -all -out=.\_export_ "%%a" http://dl.dropbox.com/u/9919707/blog...56_Plants.umap |
Цитата:
Теперь все работает. :) |
Tosyk,
Вы не могли бы написать мне только ту часть ком. строки, где работает только umodel.exe (без этого куска for /f "tokens=*" %%a in ('dir /b /s *.*') do) с вариантами ключей и порядка их следования, типа Код:
umodel.exe Param1 Param2 Param3 Param4 Param5 и т.д. |
Цитата:
Код:
umodel.exe -export -all -out=.\_export_ ФАЙЛ Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Tosyk,
Разбираюсь с umodel.exe, хочу сделать прогресс-бар и для него. Мне не понятно следующее: 1. Файлы и папки распаковываются в заданную папку _export_ в подпапку по имени обрабатываемого файла (без расширения). Сейчас я привязываю прогресс-бар к изменению размеров этой подпапки. А что делает umodel.exe или что нам делать, если такая папка уже есть? 2. По тем 2-м файлам, которые Вы мне передали мне никак не понять связь между размером файла и размером полученных после распаковки файлов и папок. 3. Можно ли какой-нибудь командой получить кол-во файлов или их размер в распаковываемом файле? (команда umodel файл -list > 1.txt не дает мне никакой информации для прогресс-бара). Цитата:
ИМХО, нам, наверное, надо переходить в ПМ, пока не получили предупреждения от модераторов. |
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
Код:
Found 1 game files (100 skipped) можно попробывать ещё такие команды: umodel -dump Admin_A_CH56_Plants.umap umodel -check Admin_A_CH56_Plants.umap Цитата:
p.s.: ещё забыл про эти паремтры: -ps3, -ios, -sounds, первые два параметра очень важны вроде, что то ещё хотел спросить, кажется не столь важно :) |
Цитата:
Что-то я запутался с параметрами. Пока у меня следующее: Код:
umodel.exe* -export* -all** -nostat*** -noanim*** -notex*** -out=File.nnn* |
Цитата:
Цитата:
есть одна особенность - umodel.exe постояно выходит новая версия. в которую добавляется поддержка новых версий архивов и ещё, возможно ли обратить внимание на версию пакетов: Цитата:
-nostat*** -noanim*** -notex*** -lzo*** -lzx*** -zlib*** -ps3*** -ios*** |
Цитата:
Цитата:
|
а есть ли возможность мне самому изменять код в дальнейшем, мне даже как то неудобно спрашивать :)
|
Цитата:
Если будет что-то не понятно, задавайте вопросы на форумах, всегда помогут. Любители AutoIt`a люди отзывчивые. :Beer: |
спасибо =), вот хотелось бы тоже научиться и по аналогии тоже делать, и по возможности расширить собрав информацию по umodel'у
add: а по поводу вынесения umodel.exe и информации о версиях: возможно ли его вшить всё таки в exe, при необходимости его можно обновлять постоянно, я по крайней мере готов, и ещё вынести информацию о версиях в отдельный файл, который можно было бы дополнять, но вшить его в файл, ой много написал |
Tosyk,
Цитата:
|
Время: 00:51. |
Время: 00:51.
© OSzone.net 2001-