如何创建在 DOS 上运行的自解压档案?

如何创建在 DOS 上运行的自解压档案?

我需要为 DOS 创建一个自解压档案。这是一个遗留项目,目前使用 lha(由 Haruyasu Yoshizaki 编写)来创建自解压程序。这确实有效,但是运行时它会询问我们是否要替换每个文件。对于数百个文件来说,这是一个小问题。

因此我需要一种方法来创建可执行文件,使其能够自行提取,并在提取器上提供“所有类型都为是”选项。它显然还必须能够在 DOS 上运行。

我在互联网上搜索过,可以找到可以做到这一点的程序,但它们似乎都需要 32 位。

答案1

您可以使用 ARJ 进行此操作,您可以从以下位置下载http://arj.sourceforge.net

诀窍是将命令行参数嵌入到 exe 中,通过添加以 )) 开头的注释来实现

例如,如果您创建一个名为 options.txt 的文本文件,其中包含以下行

)) -o

并使用命令行生成自解压 exe

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

然后这将自动覆盖任何文件(就像您指定了 -o 命令行选项一样)。

答案2

我设法找到了一种方法来做到这一点信息压缩

您需要将 UNZIPSFX.EXE 复制到合适的位置,然后按如下方式合并:

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

答案3

选项包括:

使用 arj(如本页其他地方所述)

使用 unzipsfx(如本页其他地方所述)

使用另一个处理 LZH 文件的程序(而不是使用自解压文件)。大多数存档程序都可以处理自解压文件(通过忽略存档开头的自解压程序代码)。

也许自解压文件支持某个选项,如 -y 或 /? 或 -? 或 -h,例如:

程序.exe-y

您可能已经通过使用 echo 或 type 来实现。例如:

回声Y|程序

输入 fileyyyy.txt | program.exe

那个竖线就是管道:shift-backslash

相关内容