winget 的 install 命令用于安装指定的应用程序。 使用 search 命令识别要 install 的应用程序。
show使用命令查看有关 WinGet 为系统选择的应用程序和安装程序的详细信息。
该 install 命令要求将确切字符串指定为 install. 如果有任何歧义,系统会提示你进一步筛选 install 命令,以确定具体的应用程序。
使用情况
winget install [[-q] <query> ...] [<options>]
别名
以下别名可用于此命令:
add
参数
可使用以下参数。
| 参数 | 说明 |
|---|---|
-q, --query |
用于搜索应用的查询。 |
注意
查询参数是位置参数。 默认情况下,winget 会对包名称、ID 和别名进行 不区分大小写的子字符串匹配。 不支持通配符语法。 使用 -e时, --exact 需要完全匹配(区分大小写)。 使用 --id、 --name或 --moniker 限制搜索的字段。
选项
通过这些选项,你可以自定义 install 体验以满足你的需求。
| 选项 | 说明 |
|---|---|
-m, --manifest |
必须后跟清单 (YAML) 文件的路径。 您可以使用清单从install运行体验。 |
--id |
将 install 限制为应用程序的 ID。 |
--name |
将搜索限制为应用程序的名称。 |
--moniker |
将搜索限制为针对应用程序列出的名字对象。 |
-v, --version |
使您能够为 install 指定确切版本。 如果未指定,则最新版本将是 install 版本最高的应用程序。 |
-s, --source |
将搜索限制为提供的源名称。 必须后跟源名称。 |
--scope |
用于指定安装程序是应该以用户还是计算机范围为目标。 查看与包安装范围相关的已知问题。 |
-a, --architecture |
选择要设置的 install体系结构。 |
--installer-type |
选择安装程序类型。install 请参阅 WinGet 客户端支持的安装程序类型。 |
-e, --exact |
在查询中使用确切的字符串,包括检查是否区分大小写。 它不会使用子字符串的默认行为。 |
-i, --interactive |
以交互模式运行安装程序。 默认体验会显示安装程序进度。 |
-h, --silent |
以静默模式运行安装程序。 此选项禁止显示所有 UI。 默认体验会显示安装程序进度。 |
--locale |
指定要使用的区域设置(BCP47 格式)。 |
-o, --log |
将日志记录定向到日志文件。 必须提供你具有写入权限的文件的路径。 |
--custom |
除默认值外,要传递给安装程序的参数。 |
--override |
要直接传递给安装程序的字符串。 |
-l, --location |
定位到 install(如果支持)。 |
--ignore-security-hash |
替代安装程序哈希检查。 建议不要使用。 |
--allow-reboot |
允许重新启动(如果适用)。 |
--skip-dependencies |
跳过处理包依赖项和 Windows 功能。 |
--ignore-local-archive-malware-scan |
忽略作为从本地清单安装存档类型包的一部分执行的恶意软件扫描。 |
--dependency-source |
使用指定的源查找包依赖项。 |
--accept-package-agreements |
接受程序包安装程序提供的任何许可协议或 EULA,从而抑制交互式提示。 这仅适用于程序包自己的许可条款 , 它不会影响安装程序提供的可选组件或捆绑软件。 对于完全非交互式的install,请结合--silent(-h)使用。 |
--no-upgrade |
如果已安装的版本已存在,则跳过升级。 |
--header |
可选 Windows-Package-Manager REST 源 HTTP 标头。 |
--authentication-mode |
指定身份验证窗口首选项(无提示、无提示首选或交互)。 |
--authentication-account |
指定用于身份验证的帐户。 |
--accept-source-agreements |
接受 WinGet 源(存储库)的许可协议,禁止显示交互式提示。 这与任何包许可证分开 , 它涵盖源本身的使用条款,例如 winget 社区存储库。 |
-r, --rename |
重命名可执行文件(可移植)的值。 |
--uninstall-previous |
在升级过程中卸载包的早期版本。 |
--force |
直接运行命令并继续处理非安全相关问题。 |
-?, --help |
获取有关此命令的更多帮助。 |
--wait |
提示用户在退出前按任意键。 |
--logs, --open-logs |
打开默认日志位置。 |
--verbose, --verbose-logs |
用于替代日志记录设置并创建详细日志。 |
--nowarn, --ignore-warnings |
禁止警告输出。 |
--disable-interactivity |
禁用交互式提示。 |
--proxy |
设置要用于此执行的代理。 |
--no-proxy |
禁用此执行使用代理。 |
查询示例
以下示例安装特定版本的应用程序。
winget install powertoys --version 0.91.1
以下示例根据应用程序 ID 安装相应应用程序。
winget install --id Microsoft.PowerToys
以下示例按版本和 ID 安装应用程序。
winget install --id Microsoft.PowerToys --version 0.91.1
安装多个包
你可以通过列出用空格分隔的包 ID,在单个命令中install多个包。
winget install Microsoft.VisualStudioCode Microsoft.PowerShell Git.Git
WinGet 按顺序安装每个包。 这对于快速设置新计算机或与同事共享一组工具非常有用。
小窍门
对于较大的软件包集合,请考虑使用 winget 导出 和 winget 导入 来保存并还原完整的软件包列表,或使用 winget 配置 在单个文件中将 install 软件包与其他计算机配置一起进行配置。
消除结果歧义
如果提供给 WinGet 的查询不会导致单个应用程序, 则 WinGet 将显示搜索结果。 这将为你提供进一步优化对正确的 install 的搜索所需的附加数据。
将所选内容限制为一个文件的最佳方式是结合使用应用程序的 ID 与 Exact 查询选项。 例如:
winget install --id Git.Git -e
如果配置了多个源,则可能会有重复的条目。 需要指定源才能进一步消除歧义。
winget install --id Git.Git -e --source winget
msstore 源使用唯一标识符作为程序包的“Id”。 这些选项不需要 确切 的查询选项。 例如:
winget install XP9KHM4BK9FZ7Q -s msstore
本地 install
通过 清单 选项,可以通过直接将 YAML 文件传入客户端来访问 install 应用程序。 如果清单是多文件清单,则必须使用包含文件的目录。 “manifest”选项有以下用法。
使用情况:winget install --manifest \<path>
| 选项 | 说明 |
|---|---|
-m, --manifest |
到 install 应用程序清单的路径。 |
从本地清单文件安装程序包可能存在风险。 作为额外的预防措施,此功能需要由管理员启用。 若要启用此功能,请运行 winget settings --enable LocalManifestFiles。 若要禁用此功能,请运行 winget settings --disable LocalManifestFiles。
日志文件
除非重定向,否则 WinGet 的日志文件将位于以下文件夹中: \%LOCALAPPDATA%\\Packages\\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\\LocalState\\DiagOutputDir\\*.log
许可协议
某些应用程序在安装时要求用户在安装前同意许可协议或其他协议。 发生这种情况时,Windows 程序包管理器会提示用户同意协议。 如果用户不同意,则应用程序不会 install。
在命令行中,可以通过在命令行上传递以下选项 --accept-package-agreements 来自动接受协议。 这在编写 Windows 程序包管理器脚本时可能会非常有用。