Тема: CMD/BAT: Вывод двоичных данных в файл
Здравствуйте, уважаемые знатоки BAT-технологии!
Прошу помочь разобраться с одним вопросом относительно BAT-файлов, который в интернете освещен совсем недостаточно, и найти полезные материалы по нему практически невозможно
Задача заключается в том, что необходимо с помощью BAT-приложения вывести в файл некоторый текст, который может содржать любые ASCII-символы, в том числе непечатаемые, но сам исходный код BAT-файла не должен содержать их
То есть нужно получить некоторое подибие функции print "\xAB" , где AB- это ASCII-КОД некоторого выводимого символа, а не его собственное включение
Можно придумать несколько вариатов решения, но перед тем как приступать к непосредственной реализации, хотелось узнать, возможно ли это, и насколько сложно, и реализуемо ли в разумными затратами времени
Важно отметить, что поставленная задача НЕ придумана просто так (От скуки :-), а является решением ряда других задач более высокого порядка; Это также ознаает, что для ее решения категорически нельзя использовать сторонние exe-файлы, кроме тех, что расположены в windows nt по умолчанию
1 вариант: С помощью цикла считать содержимое какого-либо гарантированно имеющегося двоичного файла, который гарантированно содержит все ASCII-символы от 0 до 255, и скопировать его собственный образ в переменную окружения
Такой вариант решения должен дать гарантированное решение задачи, но является крайне сложным; Действительно, во-первых необходимо получить ASCII-коды считываемых символов, это можно сделать через hexdumper, но уже достаточно проблематично
К тому же, в таком случае требуется получить двоичный файл, содержащий все возможные ASCII-символы, а это нетривиальная задача, да и к тому же противоречивая: чтобы быть уверенным в наличии всех символов, файл должен быть огромным, но тогда программа будет работать невозможно медленно
2 вариант: Можно решить оригинальную задачу несколько другим путем, в таком случае задача несколько переформулируется: Нужно иметь возможность удалить некоторые байты в заданном двоичном файле
Необходимы учитывать, что требуется именно удаление байтов, со смещением содержимого всего оставшегося файла, а не из замена к примеру нулевыми значениями
Если конкретизировать задачу, но удалить *всегда* требуется первые два байта, которые равны одной и той же конснанте - маркеру обрятного порядка байт в UCS-2, то есть комбинации 0xFE 0xFF
3 вариант: Можно целиком построить требуемый двоичный файл на основе предложенного на форуме решения, основанного на debug.exe; Такой вариает являлся бы допустимым, если размер целевого файла не был ограничен небольшим значением
На практике требуется построение произвольного двоичного файла, имеющего размер порядка 10kb - 3Mb
Заранее спасибо!

