Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - автоматический поиск и замена HEX в файлах

Ответить
Настройки темы
CMD/BAT - автоматический поиск и замена HEX в файлах

Аватара для Tosyk

Старожил


Сообщения: 166
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Tosyk
Дата: 06-12-2010
Описание: испраил второй пункт
Возможно ли такое сделать с помощью cmd? Нужно автоматически поправить HEX большого количества файлов с последующим переименованием.

И вот ещё: как сделать так чтобы такой скрипт работал:

1 - при перетаскивании на него одного/группы файлов
2 - при запуске производился поиск и обработка файлов вглубь по каталогам.

p.s.: иногда нужно не заменить hex, а добавить его в определённое место в файле.

Отправлено: 21:51, 05-12-2010

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Tosyk:
автоматически поправить HEX большого количества файлов с последующим переименованием »
если по адресу, то проще Unix-утилитой DD (порт для Windows), если по значению - посимвольным конвертером TR (есть в комплекте GNU utilities for Win32) или любым CMD-редактором, поддерживающим HEX (SFK, FART и т.п.)

P.S. если размер файлов <= 65280 байт можно поизвращаться со штатной DEBUG.EXE
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:56, 06-12-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Tosyk

Старожил


Сообщения: 166
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: jpg mcc001c1b.jpg
(277.5 Kb, 62 просмотров)

Вот пример, заголовок файла, нужно найти значения на верхней картинке и заменить их на значения на нижней картинке, очень часто требуются именно такие операции. Ещё иногда нужно добавить заголовок в файл. Хотелось бы обойтись без сторонних утилит, так сказать автоматизировать, потому что иногда количество файлов переваливает за несколько тысяч.

Отправлено: 05:36, 06-12-2010 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Tosyk:
значения на верхней картинке и заменить их на значения на нижней картинке »
конкретизируйте задачу именно для батника (картинки он распознавать не умеет): ОТКУДА взять блок (файл/позиция/длина/значение), КУДА этот блок записать/вставить (файл/позиция/длина/значение), как планируете передавать эти параметры в батник (переменная, командная строка, файл)?

Цитата Tosyk:
Хотелось бы обойтись без сторонних утилит, так сказать автоматизировать, потому что иногда количество файлов переваливает за несколько тысяч. »
проще и надежней автоматизировать как раз сторонними утилитами, про ограничения DEBUG.EXE уже сказал

Отправлено: 06:22, 06-12-2010 | #4


Аватара для Tosyk

Старожил


Сообщения: 166
Благодарности: 0

Профиль | Отправить PM | Цитировать


Уточню, что я знаком как с cmd так и с hex довольно поверхностно, поэтому вот этого

Цитата amel27:
ОТКУДА взять блок (файл/позиция/длина/значение), КУДА этот блок записать/вставить (файл/позиция/длина/значение), как планируете передавать эти параметры в батник (переменная, командная строка, файл)? »
я не смогу сделать, т.е. если вы объясните как мне это объяснить, то конечно смогу, но тут же не школа, зачем вам это нужно (я имею ввиду объяснять).

Цитата amel27:
проще и надежней автоматизировать как раз сторонними утилитами, про ограничения DEBUG.EXE уже сказал »
про эту программу понял, так же обратил внимание на две консольные утилиты:
Цитата amel27:
SFK, FART»
в принципе я этого и искал, FART предпочтительнее, так как он весит меньше SFK. но по FART не нашёл толком примеров, даже не знаю как к файлу его применить.

Так вот к вопросу
Цитата amel27:
конкретизируйте задачу именно для батника (картинки он распознавать не умеет) »
Нужно чтобы выделенная часть файла на картинке сверху была найдена в файле и заменена на выделенную часть файла на нижней картинке. Картинка в моём предыдущем посте.

Отправлено: 07:57, 06-12-2010 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Tosyk:
я знаком как с cmd так и с hex довольно поверхностно »
да в общем, речь не про CMD/HEX... пример:
взять с файла TEST1.BIN первые 128 байт и скопировать в начало (с заменой) файла TEST2.BIN, вариант на DD:
Код: Выделить весь код
dd bs=1c count=128 if="test1.bin" of="%~n0.tmp"
dd bs=1c count=128 if="%~n0.tmp" of="test2.bin"
или так:

Код: Выделить весь код
dd bs=1c count=128 if="test1.bin" of="test2.bin"
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:33, 06-12-2010 | #6


Аватара для Tosyk

Старожил


Сообщения: 166
Благодарности: 0

Профиль | Отправить PM | Цитировать


это с помощью стандартного CMD?

а как заменить не начало (либо конец), а именно определённые значения? потому что бывает так, что есть файлы с разными значениями вначале, соответственно эти значения нужно заменить на другие, тоже разные.

и как сделать это с маской? или вот это:

Цитата Tosyk:
1 - при перетаскивании на него одного/группы файлов
2 - при запуске производился поиск и обработка файлов вглубь по каталогам. »

Отправлено: 09:55, 06-12-2010 | #7


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Tosyk:
это с помощью стандартного CMD? »
+ названная выше утилита DD

Цитата Tosyk:
а как заменить не начало (либо конец), а именно определённые значения?"
"определенные" чем?.. если расположением блока в файле, то начало блока можно задать параметрами SKIP/SEEK уилиты DD (соответственно, для смещения блока байтов во входном/выходном файлах)... в конце концов, где-то это "значение" всё равно нужно брать

Цитата Tosyk:
как сделать это с маской? »
легко, только сначала нужно определиться с предыдущими пунктами

Отправлено: 11:25, 06-12-2010 | #8


Аватара для Tosyk

Старожил


Сообщения: 166
Благодарности: 0

Профиль | Отправить PM | Цитировать


Да-да, теперь с программой понятно (я так понимаю она тоже консольная) чтобы например зашить её утилитой Quick Batch File Compiler.

именно блок (определённые значения) нужно заменить, прошу покажите на примере хотя бы моих файлов

Отправлено: 11:44, 06-12-2010 | #9


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Tosyk:
чтобы например зашить её утилитой Quick Batch File Compiler »
консольная, но сторонними компиляторами не балуюсь... как-то и без этого работает

Цитата Tosyk:
прошу покажите на примере хотя бы моих файлов »
собственно, ничем не отличается от примера из поста #6 (кроме имен файлов), по вашему рисунку блок считается именно с начала файла... либо, укажите другое условие:
Код: Выделить весь код
@echo off

set F0=mcc001n2b. SDD
set F1=DXT5_2048x2048.dds

dd bs=1c count=128 if="%F0%" of="%F1%"

Отправлено: 08:17, 07-12-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - автоматический поиск и замена HEX в файлах

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Сравнение и замена в файлах .txt Deep2007 Скриптовые языки администрирования Windows 4 19-11-2010 19:08
Autoit работа в hex поиск offset'а aktivizion AutoIt 3 14-03-2010 21:29
C/C++ - Поиск текста в файлах student_po Программирование и базы данных 6 04-09-2009 23:33
Замена одной фразы в разных файлах Punsher Программное обеспечение Linux и FreeBSD 3 11-03-2008 13:24
Пакетная замена в html-файлах y3ep Программное обеспечение Windows 7 11-06-2004 08:06




 
Переход