CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Аватара пользователя
Tosyk

CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Tosyk »

всем привет,



1. имеется папка с кучей файлов. у файлов вместо имени hash-абракадабра типа: 000ec4d858ebbaa80621fc19a608599f.chunk или aa8d9cd800e0c17bc5b03d488ab17572.chunk

2. имеется набор файлов с расширением EBX (и нормальными именами), в хексе которых эти hash-имена.



задача вот такая вот: кидаем EBX на BAT файл и соответствующие файлы .chunk копируются к исходному EBX и, было бы круто, эти скопированные .chunk файлы переименовывать в имя EBX с числовым индексом.



подскажите как такое реализовать.



p.s.: обнаружил, что после каждого hash-имени внутри EBX идёт hex-значение: FFFFFFFF
Аватара пользователя
Iska

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Iska »

Tosyk, как понять, что есть:


Цитата Tosyk:



в хексе которых эти hash-имена.
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла





Цитата Tosyk:



копируются к исходному EBX
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла





Цитата Tosyk:



переименовывать в имя EBX с числовым индексом
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла




? Где образцы тех и других файлов, упакованных в архив? Где примеры того, что есть, и что надо получить?
Аватара пользователя
Tosyk

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Tosyk »

извините, а как пользоваться?



edit: и ещё, я хотел вот так делать: перетаскиваю .MeshSet (это по сути тот же EBX) файл на исполняемый .bat и все нужные .chunk копируются в папку к исходному .MeshSet. такое можно с ним делать?
Аватара пользователя
Tosyk

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Tosyk »

Цитата Tosyk:



возможно, когда вы посмотрите на них у вас не останется вопросов
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла




Лично мне понятней не стало. Вы не ответили на первый и последний вопросы.
Аватара пользователя
Tosyk

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Tosyk »

вроде бы начало работать, но через 2 минуты выдало эксепшены:





Скрытый текст

[spoiler][D:\_r\fb\interstate_76_premium_pc\_ex_test\bundles\res\characters\heads\head01\

head01_enemy_mesh 70110000000000001001000070009400.MeshSet]

Offset: 212

Found file name: 1689A37995A680D6AABEDA914DD62F89

File [D:\_r\fb\interstate_76_premium_pc\_ex_test\chunks\chunks0\1689a

37995a680d6aabeda914dd62f89.chunk] found!

Copy to [D:\_r\fb\interstate_76_premium_pc\_ex_test\bundles\res\characte

rs\heads\head01] as [head01_enemy_mesh 70110000000000001001000070009400_01_01.ch

unk].

Исключение при вызове "Copy" с "3" аргументами: "Файл 'D:\_r\fb\interstate_76_p

remium_pc\_ex_test\chunks\1689A37995A680D6AABEDA914DD62F89.chunk' не найден."

D:\_r\fb\interstate_76_premium_pc\tools\ps_chunks.ps1:47 знак:64

+ [System.IO.File]::Copy($sChunkFile, "$($oSourceFile.D

ire ...

+ ~~~~~~~~~~~~~~

~~~

+ CategoryInfo : NotSpecified: (Изображение [], MethodInvocationException

+ FullyQualifiedErrorId : FileNotFoundException





Offset: 388

Found file name: 4359EB953C735D805EE6F7B155BC403B

File [D:\_r\fb\interstate_76_premium_pc\_ex_test\chunks\chunks1\4359e

b953c735d805ee6f7b155bc403b.chunk] found!

Copy to [D:\_r\fb\interstate_76_premium_pc\_ex_test\bundles\res\characte

rs\heads\head01] as [head01_enemy_mesh 70110000000000001001000070009400_02_01.ch

unk].

Исключение при вызове "Copy" с "3" аргументами: "Файл 'D:\_r\fb\interstate_76_p

remium_pc\_ex_test\chunks\4359EB953C735D805EE6F7B155BC403B.chunk' не найден."

D:\_r\fb\interstate_76_premium_pc\tools\ps_chunks.ps1:47 знак:64

+ [System.IO.File]::Copy($sChunkFile, "$($oSourceFile.D

ire ...

+ ~~~~~~~~~~~~~~

~~~

+ CategoryInfo : NotSpecified: (Изображение [], MethodInvocationException

+ FullyQualifiedErrorId : FileNotFoundException





Offset: 564

Found file name: B59CF3BB396E1BC16C1585473170565F

File [D:\_r\fb\interstate_76_premium_pc\_ex_test\chunks\chunks1\b59cf

3bb396e1bc16c1585473170565f.chunk] found!

Copy to [D:\_r\fb\interstate_76_premium_pc\_ex_test\bundles\res\characte

rs\heads\head01] as [head01_enemy_mesh 70110000000000001001000070009400_03_01.ch

unk].

Исключение при вызове "Copy" с "3" аргументами: "Файл 'D:\_r\fb\interstate_76_p

remium_pc\_ex_test\chunks\B59CF3BB396E1BC16C1585473170565F.chunk' не найден."

D:\_r\fb\interstate_76_premium_pc\tools\ps_chunks.ps1:47 знак:64

+ [System.IO.File]::Copy($sChunkFile, "$($oSourceFile.D

ire ...

+ ~~~~~~~~~~~~~~

~~~

+ CategoryInfo : NotSpecified: (Изображение [], MethodInvocationException

+ FullyQualifiedErrorId : FileNotFoundException





Offset: 740

Found file name: 2D70DB36CE8988E189CEBD5F24B75895

File [D:\_r\fb\interstate_76_premium_pc\_ex_test\chunks\chunks1\2d70d

b36ce8988e189cebd5f24b75895.chunk] found!

Copy to [D:\_r\fb\interstate_76_premium_pc\_ex_test\bundles\res\characte

rs\heads\head01] as [head01_enemy_mesh 70110000000000001001000070009400_04_01.ch

unk].

Исключение при вызове "Copy" с "3" аргументами: "Файл 'D:\_r\fb\interstate_76_p

remium_pc\_ex_test\chunks\2D70DB36CE8988E189CEBD5F24B75895.chunk' не найден."

D:\_r\fb\interstate_76_premium_pc\tools\ps_chunks.ps1:47 знак:64

+ [System.IO.File]::Copy($sChunkFile, "$($oSourceFile.D

ire ...

+ ~~~~~~~~~~~~~~

~~~

+ CategoryInfo : NotSpecified: (Изображение [], MethodInvocationException

+ FullyQualifiedErrorId : FileNotFoundException





Press Enter to close...[/spoiler]


ничего не скопировало
Аватара пользователя
Tosyk

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Tosyk »

Цитата Tosyk:



нужно просканировать .MeshSet выявить список всех таких имён
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла




Ориентируемся только на то, что Вы сказали:


Цитата Tosyk:



перед каждым значением FFFFFFFF будет 32-ух значное имя файла
CMD/BAT - копирование файлов по hash-имени из HEX исходного файла




?
Аватара пользователя
Iska

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Iska »

вообще это я сам придумал. если есть какая-то возможность понять где в этом файле (в данном случае .MeshSet) будут эти 32-ух значные имена НЕ ориентируясь на FFFFFFFF то это было бы просто отлично



edit: сейчас у меня в папке CHUNK 32000 файлов
Аватара пользователя
Tosyk

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Tosyk »

если вы откроете любой из двух файлов .MeshSet из папки EBX моего примера в HEX редакторе то там перед каждым значением FFFFFFFF будет 32-ух значное имя файла из папки CHUNK моего же примера.



нужно просканировать .MeshSet выявить список всех таких имён и скопировать файлы с соответствующими именами из папки CHUNK в то место где лежит исходный .MeshSet



например для файла head_cole_mp_mesh 90110000000000001001000070009400.MeshSet список таких имён будет таким:



Код:

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

305B5D766DEEDE8081AF49D0A42426CF
88AA965A017628C5D9180DBE0A938819
65FEA349ABF38F538453CEBDA3242277
479EAF685E58B752F331F73A4A28586F

а в папке CHUNK лежат файлы с такими же именами - нужно их скопировать в папку к этому head_cole_mp_mesh 90110000000000001001000070009400.MeshSet и переименовать в



Код:

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

head_cole_mp_mesh 90110000000000001001000070009400_01.chunk
head_cole_mp_mesh 90110000000000001001000070009400_02.chunk
head_cole_mp_mesh 90110000000000001001000070009400_03.chunk
head_cole_mp_mesh 90110000000000001001000070009400_04.chunk
Аватара пользователя
Iska

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Iska »

ebx - это общий игровой формат движка frostbite. довольно разносторонний. там может всё что угодно содержаться, но что меня интересует так это только линки на эти 32-ух значные имена.

вот что то похожее на описание:
https://pastebin.com/rGpBFwAV


в аттаче я прикрепил подобный файлу .MeshSet файл для линка к текстуре. из него можно узнать имя 4D42EF837BFB4F9CBD9E664F7959E7A3 и это ещё один файл из папки CHUNK только это уже будет текстура.
Аватара пользователя
Tosyk

Re: CMD/BAT - копирование файлов по hash-имени из HEX исходного файла

Сообщение Tosyk »

вообще это я сам придумал. если есть какая-то возможность понять где в этом файле (в данном случае .MeshSet) будут эти 32-ух значные имена НЕ ориентируясь на FFFFFFFF то это было бы просто отлично



edit: сейчас у меня в папке CHUNK 32000 файлов
Ответить

Вернуться в «Скриптовые языки администрирования Windows»