引言
每次装完系统都会花费很长时间来搭建软件环境,而且部分软件默认还会安装到系统盘,很是令人头疼,作为一名合格的技术宅,肯定会第一时间想到程序自动安装,那要如何实现,具体又会涉及到哪些问题呢,接下来我们一起探索下。
概述
在 常用 cmd 命令 中,有提到 外部命令
一般类型都为 应用程序
或 MS-DOS 应用程序
,其实软件安装包本质上也是一个 应用程序
,也是支持命令行参数的,具体支持哪些安装参数,需要先了解下安装包的打包方式。
打包方式
不同的打包工具默认提供的安装参数是不同的,如下整理了几种常用的打包方式:
Microsoft Windows Installer
Microsoft Windows Installer
是Windows
提供的安装和配置服务。 为安装和卸载软件提供标准基础。使得软件制造商可以快捷轻松地进行软件安装、维护和卸载。
命令格式:
msiexec /Option <Required Parameter> [Optional Parameter]
提示
从 Windows Installer 3.0 开始,可以使用 Msiexec 命令行 ( MicroSoft标准安装程序命令行)选项 。 Windows Installer 3.0 及更早版本提供 Windows Installer 命令行选项 。
Windows Installer 命令行选项
命令选项 | 命令描述 |
---|---|
/i | 安装或配置产品 |
/a | 管理安装 - 在网络上安装产品 |
/j <u | m> <Product.msi> [/t ] [/g ] | 公布产品 m 公布到所有用户 u 公布到当前用户 |
/x <Product.msi> | 卸载产品 |
/q [ n | b | r | f ] | 设置用户界面级别 n - 无用户界面 b - 基本界面 r - 精简界面 f - 完整界面(默认值) |
/? | 帮助信息 |
Microsoft 标准安装程序命令行选项
命令选项 | 命令描述 |
---|---|
/install | 安装产品 |
/help | 帮助信息 |
/quiet | 安静模式,无用户交互 |
/passive | 无人参与模式 - 只显示进度栏 |
/norestart | 安装后不重新启动计算机 |
/forcerestart | 安装后始终重新启动计算机 |
/promptrestart | 必要时提示用户重新启动 |
/uninstall | 卸载产品 |
/package | 安装或配置产品 |
/update | 更新程序组件 |
InstallShield
官网地址:https://www.installshield.com
Installshield
是目前较为领先的用于Windows
软件安装包开发的制作工具,能够帮助所有规模的软件生产商创建高质量的安装,以传统MSI
方式和虚拟格式,自动化地封装,捆绑和包装产品,并使其可以配置数据库服务器、Web
服务以及移动设备等,实用性非常高。
命令参考自:InstallShield 用户指南
命令选项 | 命令描述 |
---|---|
/v | 指定的参数进行安装 |
/r | 记录安装过程,并建立 iss 应答文件 |
/s | 用 /r 参数建立的 iss 文件进行默安装,不展示安装进度条 |
/l | 指定语言安装,支持国家语言缩写及代码(如:zh_CN 、2052 ) |
/uninst | 卸载 |
/removeonly | 卸载,按照欢迎和修复对话框上的设置来 |
/delayedstart | 延迟安装初始化 |
/f | 在修复模式下启动安装程序 |
/f1 | 指定自定义安装响应文件,用于自动化安装过程 |
/f2 | 指定安装日志的路径和名称 |
/qn | 完全静默安装,不展示用户界面 |
InstallShield with MSI
InstallShield with MSI
制作的安装软件,请使用类似setup.exe /s /v "/qb"
来安装
Wise Installation System
一个易用的、基于脚本的安装工具,在
Windows
平台下,它很大范围内满足了有经验的软件开发者的高级安装需求,包括Web
配置和自修复应用。
参考自 WISE installer command line options
命令选项 | 命令描述 |
---|---|
/T | 测试模式 |
/X | 提取文件到指定路径 |
/Z | 提取文件到指定路径并重启系统 |
/S | 静默安装 / 卸载 |
/M | 以手动模式运行安装,提示输入系统目录 |
/M1 | 与 /M 相同,它在任何自注册的文件之前提示 |
/M2 | 在调试器会话期间保留供 WISE 内部使用 |
/A | 卸载参数,自动模式,仅展示取消 |
/R | 卸载参数,回滚模式 |
/U | 卸载参数,删除 "选择卸载方法" 对话框,这意味着最终用户看不到自定义、自动或修复卸载的选项。 |
Inno Setup
Inno Setup
是一个免费的安装制作软件,功能强大,制作快速,向导丰富,上手容易。对于一般的 Windows 安装制作都能够快速地完成,并且 Inno Setup 软件小巧、操作简便、界面精美,功能齐全,同样支持脚本批处理,受到了很多用户的喜爱。
其他支持命令可参考 Setup Command Line Parameters
命令选项 | 命令描述 |
---|---|
/HELP 或 /? | 帮助信息 |
/SP- | 禁用安装询问 |
/SILENT | 静默安装,但安装报错会提示,只展示进度条 |
/VERYSILENT | 静默安装,安装报错不提示,需要重启会自动重启系统 |
/SUPPRESSMSGBOXES | 禁用提示消息框 |
/ALLUSERS | 以管理安装模式安装 |
/CURRENTUSER | 以非管理员模式安装 |
/NORESTART | 安装后不重新启动 |
/NOCANCEL | 禁止安装过程中取消 |
/DIR | 指定安装目录 |
Nullsoft Scriptable Install System (NSIS)
NSIS(Nullsoft Scriptable Install System)
是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能,非常适合用于创建 Windows 安装程序。
参考自 Installer Usage
命令选项 | 命令描述 |
---|---|
/S | 静默安装 / 卸载 |
/NCRC | 跳过安装程序的CRC检查 |
/D | 设置默认安装目录,必须是命令行最后一个参数,并且不能包含任何引号。 |
其他打包工具
更多打包工具参考:使用第三方安装程序将桌面应用打包
工具名称 | 描述 | 开源 |
---|---|---|
Advanced Installer | 面向开发人员、ISV 和企业的 Windows Installer 打包工具 | 付费、免费 |
InstallBuilder | 功能强大且易于使用的跨平台安装程序创建工具 | 付费 |
Actual Installer | 适用于 Windows 应用程序的免费安装程序软件 | 付费、免费 |
7-Zip 自解压 | 一款高压缩比的文件压缩器 | 开源 |
获取安装参数
了解打包类型及对应参数后,我们要如何来获取安装包对应参数呢,这里简单整理如下几种方式:
- 通过静默参数扫描工具(但只能扫描出部分应用的参数,具体应用可自行百度安装)
- 通过
/help
、/?
等帮助命令获取命令行参数 - 查看应用官网文档、社区论坛是否提供命令行参数
- 如上方式无法获取安装参数时,可以尝试解压安装包进行安装
这个步骤可能是最耗时的阶段,这里整理了部分常用应用的静默参数:常用软件静默参数