我要实现一个命令行方式打包自解压包,自解压包要求可以静默安装,强行覆盖。
在网上查了很多资料,感觉说的都不清楚。
自己根据网上的提示试验了下,总结如下:
1 打自解压包,
"%WINRAR%" a -sfx -m5 Pack @BinFileList.txt
其中 a表明添加文件,-sfx表明是自解压包选项, -m5是压缩质量选项 Pack是名字@BinFileList.txt是文件列表。
说明: 我对自解压的理解,就是在rar包的基础上加入一个可执行模块,这个模块起到了包装exe的效果。
这个可执行模块位于winrar安装目录下,默认的是Default.SFX。winrar帮助里有说明,每个自解压模块可以运行的环境。
2 实现自解压选项
"%WINRAR%" c -zComment.txt Pack.exe
自解压的选项是通过注释实现的
c 表明添加注释, -zComment.txt 是注释文件 Pack.exe是第一步打的自解压包
comment里的文件内容
Overwrite=1
Silent=1
Setup=InstallHelper.bat
具体的解释可以查阅下winrar帮助。Overwrite=1 是强行覆盖; Silent=1是我需要的静默方式;Setup=InstallHelper.bat,表明安装完成运行 InstallHelper.bat。
3 其他
"%WINRAR%" a -afzip Pack @FileList.txt
打zip包