Winget 包管理器
winget 是 Windows 官方提供的命令行包管理器,适合安装桌面软件、统一升级和批量恢复常用软件。
如果你是在重装 / 新装系统后恢复整机环境,请先把它当作 Windows 重装部署顺序指南 里的系统侧安装入口,而不是一上来就对整台机器无差别批量安装。/setup 负责定义先后顺序,这一页只负责解释 winget 的操作方式。
什么时候优先用 winget
- 你刚装好一台 Windows 电脑,想快速把常用软件补齐
- 你希望以后能用命令统一升级软件
- 你想导出当前机器的软件清单,在另一台机器复用
- 你更信任微软官方生态而不是第三方脚本仓库
如果你更看重便携性、自定义 bucket 和开发者目录控制,可以搭配 Scoop 包管理器。
使用前建议
- 尽量在 PowerShell 或 Windows Terminal 中运行
- 搜索到多个包时,优先使用精确的
--id - 批量安装时带上协议参数,减少中断
- 重要软件升级前先看一眼版本变化,不要盲目
upgrade --all - 整机恢复时,先恢复主 Shell 与目录规划,再用
winget安装系统级和 GUI 软件
常用命令
winget search vscode
winget install Microsoft.VisualStudioCode
winget list
winget upgrade Git.Git
winget upgrade --all
winget uninstall Docker.DockerDesktop
winget show Microsoft.VisualStudioCode
更稳的写法通常是:
winget search --exact --id Microsoft.VisualStudioCode
winget install --exact --id Microsoft.VisualStudioCode
批量安装与迁移
# 导出当前已安装列表
winget export -o my-apps.json
# 在新机器上导入
winget import -i my-apps.json
导出 / 导入时要注意
export更像“清单备份”,不一定完整保存所有安装参数- 某些商店应用、驱动、商业软件仍可能需要手动补
- 导入失败时,优先拆成单条
install --id ...排查
常用安装清单
下面这些清单适合在 /setup 对应阶段内按需执行,不建议把它们当成系统初始化的唯一顺序。
开发机基础
winget install Microsoft.VisualStudioCode
winget install Git.Git
winget install Docker.DockerDesktop
winget install Python.Python.3.12
winget install Rustlang.Rustup
Node.js / 前端工具链
winget install OpenJS.NodeJS.LTS
winget install Schniz.fnm
winget install pnpm.pnpm
winget install JanDeDobbeleer.OhMyPosh
winget install astral-sh.uv
通用效率工具
winget install 7zip.7zip
winget install Mozilla.Firefox
winget install Notepad++.Notepad++
进阶用法
# 静默安装
winget install Git.Git --silent
# 指定版本
winget install Python.Python.3.12 --version 3.12.5
# 接受所有协议
winget install Git.Git --accept-package-agreements --accept-source-agreements
# 指定安装位置
winget install Git.Git --location "D:\Tools\Git"
适合初始化脚本的组合写法:
winget install --exact --id Git.Git --silent --accept-package-agreements --accept-source-agreements
配置源
winget source list
winget source reset --force
winget source update
如果你遇到“搜不到包”或“安装列表不完整”,优先先做一次 source update。
常见问题
搜索不到包
- 先执行
winget source update - 用
search --exact --id代替模糊关键词 - 确认包名和包 ID 没写错
安装时弹太多确认框
可以补上:
--silent --accept-package-agreements --accept-source-agreements
upgrade --all 风险太大
对开发机来说,建议先 winget upgrade 看清单,再按需升级浏览器、编辑器、CLI 工具,不要每次无脑全量升级。
与手动安装 / Scoop 混用
不是不能混用,但最好明确:
- 哪些软件由 winget 管
- 哪些软件由 Scoop 管
- 哪些软件仍旧手动安装
否则后期升级时容易混乱。
什么时候不用 winget
- 你想用便携版软件
- 你需要社区 bucket
- 你要严格控制软件安装目录和链接方式
这类场景一般更适合 Scoop 包管理器。
参考链接
- Windows 重装部署清单 — 重装后的主清单入口
- Windows 重装部署清单(详情) — 逐项版本与下载链接
- winget 官方文档 — 微软文档
- winget GitHub — CLI 源码
- winget-pkgs — 包清单仓库
- winstall.app — 可视化搜索 winget 包