1

Мне нужно создать самораспаковывающийся архив для DOS. Это унаследованный проект, который в настоящее время использует lha (Харуясу Йошизаки) для создания самораспаковывающегося. Это работает, однако, когда он запускает, он спрашивает, хотим ли мы заменить когда-либо файл. Для сотен файлов это немного проблема.

Так что мне нужен способ создания исполняемых файлов, которые будут самораспаковываться и предоставлять опцию «да для всех» на экстракторе. Также очевидно, что он должен быть в состоянии работать на DOS.

Я искал в Интернете и могу найти программы, которые делают это, но все они, кажется, нуждаются в 32-битном.

3 ответа3

1

Вы можете сделать это с ARJ, который вы можете скачать с http://arj.sourceforge.net

Хитрость заключается в том, чтобы встроить параметры командной строки в исполняемый файл, что делается путем добавления комментария, который начинается с))

Например, если вы создаете текстовый файл с именем (например) options.txt, который содержит строку

)) -o

и сгенерируйте ваш самораспаковывающийся exe с помощью командной строки

arj A -JE -zoptions.txt TEST.EXE *.*

После этого все файлы будут автоматически перезаписаны (как если бы вы указали опцию -o в командной строке).

1

Мне удалось найти способ сделать это с помощью Infozip

Вам необходимо скопировать UNZIPSFX.EXE в подходящее место, а затем объединить следующим образом:

> cd <folder to zip>
> zip -r app .
> copy /b <UNZIPSFX location>\UNZIPSFX.EXE+app.zip app.exe
> zip -A app.exe
0

Варианты включают в себя:

используя arj (как упоминалось в другом месте на этой странице)

используя unzipsfx (как упоминалось в другом месте на этой странице)

использование другой программы, которая обрабатывает файлы LZH (вместо использования самораспаковывающихся файлов). Большинство архивных программ могут обрабатывать самораспаковывающиеся файлы (игнорируя самораспаковывающийся код в начале архива).

Возможно, самораспаковывающиеся файлы поддерживают опцию, например -y или /? или же -? или -h, например:

program.exe -y

Вы можете обойтись, используя echo или type. например:

эхо Y | program.exe

тип fileyyyy.txt | program.exe

Эта вертикальная черта - это труба: shift-backslash

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .