upgrade 命令 (winget)
winget 工具的 upgrade 命令可升级指定的应用程序。 或者,也可使用 list 命令来识别要升级的应用程序。
upgrade 命令要求你指定要升级内容的具体字符串。 如果存在任何不明确性,系统会提示你进一步将 upgrade 命令筛选到具体应用程序。
别名
以下别名可用于此命令:
- update
使用情况
winget upgrade [[-q] <query> ...] [<options>]
参数
可使用以下参数。
参数 | 说明 |
---|---|
-q、--query | 用于搜索应用的查询。 |
注意
查询参数是位置参数。 不支持通配符样式语法。 这通常是你期望帮助查找所升级的程序包的字符串。
选项
这些选项让你可以根据自己的需求自定义升级体验。
选项 | 说明 |
---|---|
-m、--manifest | 必须后跟清单 (YAML) 文件的路径。 你可使用清单从本地 YAML 文件运行升级体验。 |
--id | 将升级限制为应用程序的 ID。 |
--name | 将搜索限制为应用程序的名称。 |
--moniker | 将搜索限制为针对应用程序列出的名字对象。 |
-v、--version | 让你可以指定要升级的确切版本。 如果未指定,则使用 latest 会升级到应用程序的最高版本。 |
-s、--source | 将搜索限制为所提供的源名称。 必须后跟源名称。 |
-e、--exact | 在查询中使用确切的字符串,包括检查是否区分大小写。 它不会使用子字符串的默认行为。 |
-i、--interactive | 以交互模式运行安装程序。 默认体验会显示安装程序进度。 |
-h、--silent | 以静默模式运行安装程序。 此选项禁止显示所有 UI。 默认体验会显示安装程序进度。 |
--purge | 删除包目录中的所有文件和目录(可移植) |
-o、--log | 将日志记录定向到日志文件。 必须提供你具有写入权限的文件的路径。 |
--custom | 除默认值外,要传递给安装程序的参数。 |
--override | 要直接传递给安装程序的字符串。 |
-l、--location | 要升级到的位置(如果支持)。 |
--scope | 选择已安装的包范围筛选器(用户或计算机)。 |
a, --architecture | 选择要安装的体系结构。 |
--installer-type | 选择要升级的安装程序类型。 请参阅 WinGet 客户端支持的安装程序类型。 |
--locale | 指定要使用的区域设置(BCP47 格式)。 |
--ignore-security-hash | 替代安装程序哈希检查。 建议不要使用。 |
--allow-reboot | 允许重新启动(如果适用)。 |
--skip-dependencies | 跳过处理包依赖项和 Windows 功能。 |
--ignore-local-archive-malware-scan | 忽略作为从本地清单安装存档类型包的一部分执行的恶意软件扫描。 |
--accept-package-agreements | 用于接受许可协议,并避免出现提示。 |
--accept-source-agreements | 用于接受源许可协议,并避免出现提示。 |
--header | 可选 Windows-Package-Manager REST 源 HTTP 标头。 |
--authentication-mode | 指定身份验证窗口首选项(无提示、无提示首选或交互)。 |
--authentication-account | 指定用于身份验证的帐户。 |
-r、--recurse、-all | 将所有已安装的包升级到最新版本(如果可用)。 |
-u, --unknown, --include-unknown | 升级包(即使无法确定其当前版本)。 |
--pinned,--include-pinned | 即使包具有非阻止引脚,也会升级包。 |
--uninstall-previous | 在升级过程中卸载包的早期版本。 行为取决于单个包。 某些安装程序的设计是为了并行安装新版本。 某些安装程序包含指定了“uninstallPrevious”的清单,这样在卸载早期版本时就无需使用此命令标志。 在这种情况下,使用 winget upgrade --uninstall-previous 命令会指示 WinGet 卸载以前的版本而不考虑包清单中的内容。 如果包清单不包含“uninstallPrevious”且未使用 --uninstall-previous 标志,则安装程序采用默认行为。 |
--force | 直接运行命令并继续处理非安全相关问题。 |
-?,--help | 显示有关所选命令的帮助。 |
--wait | 提示用户在退出前按任意键。 |
--logs,--open-logs | 打开默认日志位置。 |
--verbose, --verbose-logs | 用于替代日志记录设置并创建详细日志。 |
--nowarn,--ignore-warnings | 禁止警告输出。 |
--disable-interactivity | 禁用交互式提示。 |
--proxy | 设置要用于此执行的代理。 |
--no-proxy | 禁用此执行使用代理。 |
查询示例
以下示例将升级特定版本的应用程序。
winget upgrade powertoys --version 0.15.2
以下示例将根据应用程序 ID 升级相应的应用程序。
winget upgrade --id Microsoft.PowerToys
以下示例演示如何升级所有应用
winget upgrade --all
使用 upgrade
若要确定哪些应用需要更新,只需使用 upgrade,而无需使用任何参数来显示所有可用升级。
在下面的示例中,你将看到 winget upgrade 向用户显示显示具有可用更新的应用。 在可用更新中,用户可发现 JanDeDobbeleer.OhMyPosh 有可用的更新,并可使用 upgrade 来更新应用程序。
使用 list 和 upgrade
若要搜索特定应用的可用更新,请使用 list 命令。 发现特定应用有可用的更新后,请使用升级来安装最新更新。
以下示例显示了用于确定 Microsoft.WindowsTerminalPreview 是否有可用更新的 list 命令。 然后,用户可使用 upgrade 来更新应用程序。
upgrade --all
upgrade --all 将识别有可用升级的所有应用程序。 运行 winget upgrade --all 时,Windows 程序包管理器将查找具有可用更新的所有应用程序并尝试安装更新。
注意
某些应用程序不提供版本。 它们始终是最新的。 由于 Windows 程序包管理器无法识别是否有较新版本的应用,因此无法进行升级。
upgrade --uninstall-previous
upgrade --uninstall-previous 会在安装新版包之前卸载上一版本。 使用 --uninstall-previous
时,行为取决于单个包。 某些安装程序设计为并行安装新版本,而其他安装程序则包含一个清单,该清单指定 uninstallPrevious
作为其默认升级行为(因此,无需使用命令标志即可卸载早期版本)。
如果包清单不包含 uninstallPrevious
作为升级行为,并且 upgrade 命令未使用 --uninstall-previous
标志,则会应用安装程序的默认行为。