AlexandrPessimist
![](http://forum.ru-board.com/board/avatars/russia.gif)
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте. Возникла проблема с передачей символа NUL. Что нужно: 1. Открыть образ (*.img) в HEX режиме. 2. Прочесть (из разных мест в файле) и сохранить нужное число байт в INI-файл (как значения параметров). 3. Распаковать образ. 4. Создать образ из содержимого папки, используя в командной строке значения из INI-файла. Проблема в 4 шаге: Имя образа (сохр. в ini) всегда фикс. длины, начинается всегда текстом, а в конце заполняется символом NUL до нужной длины. При сохранении имени в INI, символ NUL не передается, соответственно длина имени образа сокращается. Для создания образа нужно передать в командную строку фиксир. длины имя, содержащее символы NUL. Пример ($name): Код: Run(@ScriptDir & '\mkimage.exe -A ' & $cmd1 & ' -O ' & $cmd2 & ' -T ' & $cmd3 & ' -C ' & $cmd4 & ' -a ' & $cmd5 & ' -e ' & $cmd6 & ' -d kernel/zImage:initrd.cpio.gz -n ' & $name & ' new.img', $in_dir & '\', @SW_HIDE) | За основу пытался брать реализацию создания образа через BAT-файл: Код: for /f %%a in ('cat image_name.txt') do ( set name=%%a ) | Переменная %name% используется для вставки в параметры создания образа, как имя образа. В консольном варианте имя файла сохранялось не как значение в INI, а как отдельный файл (просто сливался кусок в HEX режиме). Далее, при создании образа, для получения точного имени используется утилита CAT (win32), результат которой исп. как точное имя образа. Как это можно реализовать в autoit, никак не пойму. Пробовал исп. CAT для чтения имени (в отдельном файле), но она ничего не возвращает (запускал с пар. $STDOUT_CHILD)... Можно ли как-то передать string строку, которая содержит только текст и символы NUL? Можно даже с помощью CAT.. |