0%

winget入门

概述

winget(Windows 程序包管理器/Windows Package Manager)是微软为 win10+ 开发的一款开源的软件包管理器,于 2020年5月的 Microsoft Build 开发者大会上发布。

winget 可以卸载 winget list 显示出的所有软件,包括电脑上的大多数软件,如 Windows 系统自带的、手动安装的、Chocolatey 安装的部分等。唯一不足的是,卸载时会被弹出的卸载窗口打断,降低了自动化的一致性。

从帮助上手

对于命令行工具,学习的第一抓手永远是内置的帮助文档。可以通过以下命令查看帮助:

1
2
winget --help
winget -?

通过帮助文档可知,winget 命令格式为:winget [<命令>] [<选项>],目前可用的命令如下:

命令 说明
install 安装给定的程序包
show 显示包的相关信息
source 管理程序包的来源
search 查找并显示程序包的基本信息
list 显示已安装的程序包
upgrade 升级给定的程序包
uninstall 卸载给定的程序包
hash 哈希安装程序的帮助程序
validate 验证清单文件
settings 打开设置或设置管理员设置
features 显示实验性功能的状态
export 导出已安装程序包的列表
import 安装文件中的所有程序包

日常使用流

通常情况下,使用 winget 的流程为“查询-安装-更新-卸载”,因此执行命令大致如下:

1
2
3
4
winget search APPNAME
winget install APPNAME
winget upgrade APPNAME
winget uninstall APPNAME

如果不清除具体命令的用法,可以使用 winget <命令> -? 命令查看对应命令的帮助文档。

使用体验及注意事项

winget 版本(通过 winget -v 查看)v1.2.10271

目前,winget 大多数尤其是常用命令的执行效率不高,开始执行后通常会有一个漫长的 loading 过程。

并且尝试将其用于脚本进行批处理可能效果不会太好。首先,如果安装程序启动了另一进程,可能会提前返回,继续安装下一个程序——当安装顺序很重要时,这就会是一个问题。其次,卸载时可能弹出卸载窗口,也会造成问题。

参考

Microsoft Docs
GitHub winget-cli