【制作自解压程序】使用7Z制作自解压程序

1.前言

自解压程序是利用压缩包制作一个类似于下载程序样式的文件,可以让用户直接点击使用,而不是解压以后去文件中找哪个是启动程序。

2.准备压缩包

首先,先将想要制作成自解压程序的、包含exe程序的文件夹中的内容制作成7z压缩包:【ctrl+A】全选文件→【右键】压缩到→7z文件

注意:
1.记住exe的名称,archive为自己想要的文件名
2.不要在外层直接压缩整个文件夹!制作完成会找不到archive.exe
3.打包后的文件名称改为archive

在这里插入图片描述

3.准备7zSD.sfx文件

7-zip中文网下载:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ed7b9a839816427fa6677d3f076e7de4.png安装好以后在安装文件的目录里
下载文件>bin里面找到7zSD.sfx文件,复制到上一步压缩包的地方:
在这里插入图片描述

4.准备config.txt

内容如下:

;!@Install@!UTF-8!
Title="自解压程序"
BeginPrompt="确定下载安装吗?"
RunProgram="archive.exe"
;!@InstallEnd@!

注解:

  • ;!@Install@!UTF-8! 这表示配置文件的开始,UTF-8! 指定了文件使用UTF-8编码。
  • Title="自解压程序" 指定自解压窗口的标题。
  • BeginPrompt="确定下载安装吗?" 指定在自解压过程开始之前显示的提示信息。
  • RunProgram="archive.exe"指定自解压完成后要运行的程序。这里的archive.exe应该是自解压后生成的可执行文件,或者是压缩包中的某个可执行文件。
  • ;! @InstallEnd@! 表示配置文件的结束。

5.合并文件

cmd打开命令窗口,运行如下语句:

copy /b 7zSD.sfx + config.txt + archive.7z archive.exe   

在这里插入图片描述
注解:

  • archive.7z 是你的7z压缩文件,archive.exe 是生成的自解压文件。
  • copy:这是 Windows 的一个命令,用于复制文件。
  • /b:这是 copy 命令的一个选项,表示以二进制模式复制文件。二进制模式通常用于复制那些包含非文本数据的文件,如可执行文件或图像文件。
  • +:在 copy 命令中,+ 用作连接操作符,它指示命令提示符将多个文件合并成一个文件。

6.完成

正确运行后会得到一个archive.exe程序,双击即可直接运行,执行自解压操作,而不需要安装任何额外的软件:
在这里插入图片描述

### 如何使用7z创建自解压EXE并设置默认运行命令或参数 #### 创建自解压EXE文件 要通过 `7z` 工具创建一个自解压 `.exe` 文件,可以按照以下方法实现。首先需要调用 `7z.exe` 的命令行工具,并结合 `-sfx` 参数来生成自解压文件[^1]。 以下是具体的操作过程: ```bash 7z.exe a output_file_name.exe input_folder_or_files -sfx ``` - **`output_file_name.exe`**: 这是你希望生成的自解压文件名称。 - **`input_folder_or_files`**: 需要被压缩成自解压文件的目标文件夹或者单个文件。 - **`-sfx`**: 表示启用 7-Zip 提供的 SFX (Self Extracting Archive) 功能。 例如,如果有一个名为 `testdir` 的目录想要将其打包为自解压 EXE 文件,则可执行如下命令: ```bash 7z.exe a test.exe -sfx testdir ``` 此命令会将 `testdir` 中的内容压缩至名为 `test.exe` 的自解压文件中。 #### 设置默认点击行为和传递参数 当用户双击该自解压文件时,默认的行为取决于配置选项以及附加的启动脚本或命令。为了定制化这些行为,可以通过额外的参数控制其动作[^3]。 ##### 使用 `setup.txt` 或者直接嵌入命令 一种常见做法是在压缩包内部放置一个特殊的文本文件——通常命名为 `setup.txt` ——其中写明了提取后的自动执行指令。比如下面的例子展示了如何让解压完成后立即运行某个应用程序: 假设目标是让用户打开解压出来的程序 `app.exe`, 可以在 `setup.txt` 内写下这样的内容: ``` Path=.\app.exe RunProgram="app.exe" ``` 接着把这个 `setup.txt` 和其他待压缩的数据一起加入到最终的自解压档案里去。这样做的效果就是一旦完成解档工作之后便会依照指示启动指定的应用程序[^2]。 另外需要注意的是, 如果想完全静默安装(即不弹出任何界面), 则应该利用 `-s` 开关作为附加参数传送给实际负责部署工作的软件组件上。 #### 自动化与高级设定 对于更复杂的场景来说,还可以借助于批处理脚本来进一步简化流程。例如编写一段简单的 Windows 批量脚本用于封装整个制作过程: ```batch @echo off setlocal enabledelayedexpansion :: 定义变量 set SEVENZIP_PATH=C:\path\to\7z.exe set OUTPUT_NAME=myselfextractor.exe set INPUT_DIR=path\to\your\files\ set SETUP_FILE=setup.txt :: 调用7zip进行打包 "%SEVENZIP_PATH%" a %OUTPUT_NAME% "%INPUT_DIR%" -sfx "%SETUP_FILE%" endlocal pause ``` 上述脚本实现了自动化构建带有所需初始设置项的独立分发版自解压包的功能。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值