我想创建一个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
?
找到解决方案了!问题显然是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
选项。
应该可以了:
rar a -sfxdefault.sfx myexeforwindows.exe myprog.exe