【问题标题】:How to create Windows compatible rar sfx archive on Linux如何在 Linux 上创建与 Windows 兼容的 rar sfx 存档
【发布时间】:2015-08-09 09:18:23
【问题描述】:

我想创建一个rar SFX 存档,可以在 Windows 上使用 Linux 执行。假设我想将文件myprog.exe 放入存档中,并在提取存档时自动执行该文件。 我创建了一个初始化脚本 (myinit.txt)

;The comment below contains SFX script commands
Path=%TEMP%
Setup=tftpd32.exe
TempMode
Silent=1
Overwrite=1

然后我使用以下命令创建了存档:

rar a -sfx archive.exe myprog.exe
rar c archive.exe < myinit.txt

现在,如果我用 Winrar 打开 archive.exe,我可以看到我的文件和我正确设置的所有选项。问题是,如果我尝试执行文件(双击)我会得到一个错误:

程序太少,无法放入内存

我想问题是该文件没有 Windows 可执行文件的布局。

四处搜索我发现zip 有一个选项-A 可以用来解决这个问题。 rar 有没有办法解决这个问题?

【问题讨论】:

  • 找到了这个link,但在互联网上找不到 *.sfx 文件。

标签: linux windows shell exe rar


【解决方案1】:

应该可以的:

rar a -sfxdefault.sfx myexeforwindows.exe myprog.exe

【讨论】:

  • 我试过了,但问题是一样的。我也试过7zr -sfx7zCon.sfx a archive.exe myprog.exe,但没有运气。
【解决方案2】:

找到了解决方案!问题显然出在sfx 模块上。我在我的 Windows 机器中搜索了WinRAR 程序文件,发现了 Windows Default.SFX。我将该文件复制到我的 linux 机器上创建存档的同一目录中,并将其重命名为 windows.sfx。此时我运行:

> rar a -sfxwindows.sfx archive.exe myprog.exe
> rar c archive.exe < myinit.txt

它成功了!

另一个提示:文件 myinit.txt 必须使用 Windows 换行约定编写。

只缺少一件事:为存档设置图标的可能性。 Windows 文档显示了 linux 文档中缺少的 -iicon 选项。

【讨论】:

  • 只有WinRAR.exe支持切换-iicon。控制台版本 Rar.exe 不支持该开关,无论是在 Windows 上还是在任何其他平台上。正如我所解释的here,有几种解决方案可以创建具有自定义属性的 SFX 存档。由于您无法在 Linux 上使用 rar 添加图标,因此最好在 Windows 上直接替换 windows.sfx 内的图标资源,并在 Linux 上使用此自定义 SFX 模块。
猜你喜欢
  • 2013-12-09
  • 2019-09-09
  • 1970-01-01
  • 2014-12-15
  • 1970-01-01
  • 2013-07-15
  • 2016-12-18
  • 1970-01-01
  • 2018-10-29
相关资源
最近更新 更多