7z 命令行方式生成自解压exe
一、下载
7z是一个免费的工具,除了通过命令行的方式提供各种文件、压缩包相关的操作外,还提供了一种方式可以打出自解压的exe程序。该程序从运行到结束经历了三个流程:
(1) 解压文件到用户临时目录;
(2) 运行指定的启动程序/脚本;
(3) 运行完之后退出删除解压文件;
在网站 https://www.7-zip.org/ 7z官网上可以下载最新的7z程序,运行安装,安装之后的目录结构为:
其中 7-zip.chm是帮助文档,7z的许多命令行用法在该文档中均可查到;
根据文档的说明,若想打出自解压的exe,需要在官网上下载 LZMA SDK包获取其中的 {SFX_Module}相关文件。
二、配置
根据chm手册了解到若想要打出自解压的exe,需要如下步骤:
(1) 从LZMA SDK解压目录 bin 目录下将以下3个文件拷出放到7z的解压目录下。
(2) 准备程序,这里比较简单,一个目录下三个文件,其中一个是启动脚本。
(3) 准备config.txt,内容如下
;!@Install@!UTF-8!
Title="Patch Tool"
ExecuteFile="start.bat"
;!@InstallEnd@!
(4) 准备生成exe的脚本文件,内容如下:
del test.7z
del test.exe set srcpath=%1% //传递test文件夹目录绝对地址
echo %srcpath%
7z a test.7z "%srcpath%\*" -r -mx -mf=BCJ2 //将test文件夹内所有文件压缩到7z包中,不包含test目录
copy /b 7zSD.sfx + config.txt + test.7z test.exe
(5) 将config.txt、生成exe的脚本、7z相关的文件放到一个目录下,如下
通过以上步骤,exe自解压相关的内容基本配置完毕。
三、运行
直接运行 windowsExe.bat脚本,输入test目录绝对地址,会自动生成7z文件和exe文件,双击运行exe文件即可。
四、知识点
根据帮助文档的内容,可以得知 7z 提供了一下{SFX_Module}配置
SFX_Module | Description |
---|---|
7z.sfx | SFX module (GUI version) |
7zCon.sfx | SFX module (Console version) |
7zSD.sfx | SFX module for installers (GUI version) |
7zS2.sfx | small SFX module for installers (GUI version) |
7zS2con.sfx | small SFX module for installers (Console version) |
生成自解压exe的命令必须是:copy /b 7zSD.sfx + **.txt + **.7z **.exe (其中**.txt可选)。
若将7zSD.sfx更换成表格中的不同sfx文件,会有不同结果如下:
(1) 7z.sfx
实际上生成的仅是自解压功能的exe,双击exe,会出现解压界面,要求用户选择自解压的路径,但是 **.txt配置的内容均是无效的。仅是完成自解压的功能。
(2) 7zCon.sfx
与(1) 的效果一致,也是仅完成自解压的功能,唯一区别在于双击exe,出现的是命令行,所有信息在命令行中输出。
(3) 7zS 开头的sfx
这类才是可安装的exe,自解压到临时目录,运行指定程序,区别在于自解压界面呈现的方式(有的是用户可视界面,有的是命令行界面)。
7z 命令行方式生成自解压exe的更多相关文章
- JAVA基础学习之命令行方式、配置环境变量、进制的基本转换、排序法、JAVA文档生成等(1)
1.命令行方式 dos命令行,常见的命令: dir:列出当前目录下的文件以及文件夹 md:创建目录 rd:删除目录 cd:进入指定目录 cd..:退回到上一级目录 cd/:退回到根目录 del:删除文 ...
- 7z命令行简单使用
7z命令行简单使用 网上有很多博客都有记录7z的命令行使用方式,但看起来乱起八糟的,不知所云. 急于使用者可以直接看实例 注:我仅仅记录我认为常用的命令,毕竟没有那么多的精力去学习不常用的东西. 简介 ...
- 在非SQL客户端使用命令行方式定期连接SQL Server 服务器并模拟用户查询操作,同时输出信息内容
一个很长的标题,实现的功能就是尽量使用非人力的方式模拟人去做一件事情,为了便于记录,将他们输出成文件方便查阅. 图形界面方式,使用微软自己的ConnMaker.exe,或者Microsoft 数据连接 ...
- 7z命令行参数中的路径
最近在自动化的过程中用到了7z命令行工具,发现其参数中的路径挺有意思的,在此总结一下.本文中所有demo使用的7z版本为:15.14 x64. 压缩某个文件夹 下面的命令会把g:\temp\目录和目录 ...
- [转]Windows中使用命令行方式编译打包Android项目
http://my.oschina.net/liux/blog/37875 网上很多用Ant来编译打包Android应用的文章,毕竟Ant是纯Java语言编写的,具有很好的跨平台性.今天想写个纯win ...
- ResHacker 用命令行方式修改 windows PE文件版本号
由于工作需要在詹金斯(genkins)集成环境打包,打包避免不了需要修改版本号,写入版本号最简单的方式通过修改windows rc文件 这就意味着,每次构建新版本前需要修改一次源文件 这个在用詹金斯集 ...
- 7Z命令行详解
7z.exe在CMD窗口的使用说明如下: 7-Zip (A) 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06 Usage: 7za <co ...
- 7Z命令行
7-Zip (A) 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06 Usage: 7za <command> [<switch ...
- Jmeter命令行方式启动
在性能测试过程中,我们常常遇到这样的问题,使用Jmeter的GUI界面进行大并发量的性能测试时,界面容易卡死,无法继续进行性能测试.通过使用命令行方式启动jmeter是一个不错的方式.下面就简单介绍一 ...
随机推荐
- CSS3 - vue中纯css实现柱状图表效果
背景 以前我们制作柱状图都用echarts或者其他同类型的图表插件 这次是个移动端的需求,而且这个图表需要动画 使用echarts就会显得过重,而且动画达不到我想要的效果(主要是我自己愚蠢想不到好的动 ...
- IIS下网站对options请求直接返回404
什么是options请求 options请求为发送非简单跨域请求前的预检请求,若该请求未正常返回,浏览器会阻止后续的请求发送. 一般情况下,有三种方式会导致浏览器发起预检请求 1.请求的方法不是GET ...
- SqlDataReader的用法 转自https://www.cnblogs.com/sunxi/p/3924954.html
datareader对象提供只读单向数据的快速传递,单向:您只能依次读取下一条数据;只读:DataReader中的数据是只读的,不能修改;相对地,DataSet中的数据可以任意读取和修改 01.usi ...
- django基础知识之URLconf:
URLconf 在settings.py文件中通过ROOT_URLCONF指定根级url的配置 urlpatterns是一个url()实例的列表 一个url()对象包括: 正则表达式 视图函数 名称n ...
- .Net进程外session配置
配置步骤: 1.开启 ASP.NET状态服务:cmd状态下:services.msc 2.配置web.config文件,在system.web下加入如下配置 <sessionState mode ...
- web应用分页
1. 场景描述 目前大部分的应用程序中都会用到分页功能,以便减少前端浏览器及后台服务器的压力,以及其他方面的考虑. (1)分页从概念上可分为逻辑分页和物理分页,逻辑分页主要是通过应用程序(前端或者后端 ...
- 教你用Python制作微信好友背景墙
目录: 0 引言 1 环境 2 代码实现 3 后记 0 引言 前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像. 效果如下图,出于隐私考虑,这 ...
- GitHub使用整理——从开始到上传项目
前期准备 首先是github官网: https://github.com/ 下载github工具: https://git-for-windows.github.io/ 进入github创建一个新的项 ...
- CitusDB UPSERT
CitusDB的upsert功能 postgresql9.5 版本支持 "UPSERT" 特性, 这个特性支持 INSERT 语句定义 ON CONFLICT DO UPDATE/ ...
- [原创]lvs+ospf+nginx实现高可用大流量web架构
lvs+ospf+nginx实现高可用大流量web架构配置总概述 架构图: 配置如下: .quagga之zebra配置: # cat /etc/quagga/zebra.conf ! ! Zebra ...