Windows 自带 winget 怎么用:命令行安装、更新与卸载软件全指南
很多人在网上找软件,点进不知名下载站,结果装了一堆捆绑软件。其实 Windows 10(2004 及以上)和 Windows 11 自带了一个官方命令行包管理器——winget,它直接从微软背书的软件源拉取安装包,安装、更新、卸载都能用一条命令完成。本文把 winget 的常用姿势一次讲清楚。
winget 是什么,和官网下载有什么区别
winget(Windows Package Manager)是微软官方提供的命令行包管理工具,默认集成在较新版本的 Windows 中。它做的事情和「你打开浏览器、搜索、下载、双击安装」一样,只是全部由命令自动完成。
与官网手动下载相比,winget 有三个明显优势:
- 来源可控:默认从微软认可的应用商店关联源(winget 源)拉取,很多知名软件是由官方或社区维护的清单,降低从下载站拿到捆绑包的风险;
- 批量高效:重装系统后可以一条条命令安装常用软件,也可以导出清单脚本复用到其他电脑;
- 更新集中:用
winget upgrade --all可以统一检查并更新已纳入管理的软件,不用一个个软件手动找更新入口。
需要说明的是,winget 只是自动帮你「下载并运行官方安装程序」,软件的可靠性仍取决于维护者发布的清单指向的官方地址。追求绝对稳妥时,重要软件仍可在官方站点核对后再安装。
怎么确认自己能用 winget
先打开「开始」菜单搜索「终端」或「PowerShell」,输入:
winget --version
能输出版本号(如 v1.x),说明系统已自带 winget,直接可用。若提示「无法识别」,说明系统版本较旧或组件缺失,可先在 Microsoft Store 中搜索「App Installer」并更新到最新版(winget 由 App Installer 提供),这个应用本身来自微软官方商店。
最常用的 6 个命令
| 命令 | 用途 | 示例 | |------|------|------| | winget search 关键词 | 搜索软件并查看准确包 ID | winget search 7zip | | winget show 包ID | 查看某软件来源、版本、发布者 | winget show 7zip.7zip | | winget install 包ID | 安装指定软件 | winget install 7zip.7zip | | winget list | 查看已安装的软件清单 | winget list | | winget upgrade --all | 检查并更新所有可更新的软件 | winget upgrade --all | | winget uninstall 包ID | 卸载指定软件 | winget uninstall 7zip.7zip |
为了让安装过程更安静顺畅,还可以加上这些参数:
winget install -e --id 7zip.7zip --source winget
-e 表示精确匹配包 ID,--source winget 明确只使用 winget 源,避免搜索到同名的其他来源版本。搜索后看到多个候选时,以官方维护的清单(显示发布者与官方网站一致者)优先。
重装系统后批量装软件的思路
换新电脑或重装系统后,常见的做法是一遍遍手动下载。用 winget 可以这样:
- 列出当前电脑已装的软件:
winget list; - 挑出自己真正需要的,逐条写
winget install 包ID组成一个文本脚本; - 在新电脑上逐行执行,或在终端里一次性粘贴执行。
一个更省事的办法是导出清单:
winget export -o apps.json
winget import -i apps.json
把 apps.json 保存好,新电脑上执行导入即可批量还原。注意导入时会逐项询问确认,加 --accept-package-agreements 可跳过部分协议的交互确认;但首次使用建议先看清单内容,确认没有把不需要的软件也一起装回来。
更新管理与卸载时的注意事项
更新软件用 winget upgrade,它可以告诉你哪些软件有新版本:
- 只想更新某一个:
winget upgrade 包ID; - 全部更新一遍:
winget upgrade --all。
升级前建议先备份重要文档,并留意该软件的更新说明——个别软件的大版本升级可能改变操作方式或默认设置。
卸载时优先用系统的「设置 > 应用 > 安装的应用」,也可以 winget uninstall 包ID。若软件本身不在 winget 管理范围内(比如手动安装的绿色版),winget 可能找不到它,这时回到对应软件的官方网站查看卸载说明即可。
新手最容易踩的 4 个坑
- 把搜索结果当精确匹配:
winget install 7zip可能让你在多个相近结果里选择,用-e --id指定完整 ID 更稳妥; - 覆盖自带命令的软件冲突:个别软件(如 Python、Git)版本较多,安装前用
winget show确认发布者与版本,装成旧版再升级会多费一步; - 管理员权限不足:部分软件安装和全局更新需要管理员权限,提示权限不足时右键终端「以管理员身份运行」;
- 盲信任何「winget 一键装全套」脚本:网上有人分享批量安装脚本,先逐行看清单再执行,防止夹带不需要的软件。
和「官网下载」怎么配合
winget 适合高频、知名的常用软件;冷门软件、小众工具或需要特定自定义选项的安装,仍建议直接访问官方网站下载安装包,下载后用浏览器验证 HTTPS 证书与软件数字签名(详见站内「如何从官网安全下载软件」一文)。两者并不冲突,而是互为补充。
常见报错与处理速查
| 现象 | 原因 | 处理 | |------|------|------| | 提示「无法识别 winget」 | 系统版本旧或 App Installer 缺失 | 到 Microsoft Store 更新「应用安装程序」,或升级系统 | | 提示需要接受源协议 | 首次使用该软件源 | 按提示输入 y 确认,或加 --accept-source-agreements | | 安装到一半被杀毒软件拦下 | 个别安装包行为触发防护 | 以官方清单源为准复核后,在安全软件中允许本次安装 | | winget list 看不到刚装的软件 | 该软件未走安装器注册 | 属正常现象,以软件自身「关于」页面版本为准 | | 提示「已在 0 个源中找到」 | 拼写或包 ID 不对 | 先 winget search 查准确 ID 再装 |
做完这几件再收工
- 在终端输入
winget --version,确认本机 winget 可用。 - 用
winget search找一款常用软件,并winget show核对发布者与来源。 - 挑一款软件用
-e --id --source winget完整安装一遍。 - 运行
winget upgrade --all,记录本次更新了哪些软件及版本变化。 - 把
winget export -o apps.json导出的清单备份到网盘,作为重装系统素材。