使用教程 Windows

换机重装别再一个个点下载:winget export / import 一次装齐软件清单

把现在这台 Windows 上的软件清单导出成一份 JSON,重装系统后用一条 winget import 全部装回来。本文讲导出导入的写法、商店应用与手动安装软件为什么带不上,以及失败后怎么补。

内容最后核实:2026-10-01(软件更新后步骤可能变化,失效请通过 征集与反馈页反馈)

重装系统最耗时间的不是装系统本身,而是「我到底装了哪些软件、都从哪儿下的」。Windows 自带的包管理器 WinGet 可以把这台机器上的软件清单导出成一个 JSON 文件,下次一条命令装回来。

先确认 WinGet 能用

Windows 10 1709 以上与 Windows 11 都预装了它(App Installer)。终端里先跑一次:

winget --version
winget source list

source 里应能看到 winget(社区仓库)。如果提示源不可用,执行 winget source reset --force 后重试。

导出当前软件清单

winget export -o D:\backup\apps.json --include-unknown
  • -o 指定输出路径,放在系统盘之外,否则重装时就把它一起格掉了;
  • --include-unknown 会把「不是通过 winget 装的」软件也尝试写进清单——好处是清单更完整,坏处是这些条目在导入时可能因为找不到对应包而失败。

导出的文件长这样,人工也能改:

{
  "$schema": "https://aka.ms/winget-ImportFile.schema",
  "Applications": [
    { "Id": "7zip.7zip", "Version": "24.08" },
    { "Id": "Duplicati.Duplicati", "Version": "2.4.0.0" }
  ]
}

重装后一条命令装回来

winget import -i D:\backup\apps.json --ignore-versions --accept-package-agreements --accept-source-agreements

--ignore-versions 是关键:不写它时会严格按导出时记录的版本号安装,一旦某个包已发布新版、旧版从仓库下架,就会直接失败。加上它则装当前可用版本。

三类带不回来的情况,怎么补

  1. Microsoft Store 应用:它们走的是商店渠道,winget 清单里即使出现也可能导入失败。重装后用 winget list 核对,缺的从商店页手动装。
  2. 官方没有 winget 包的软件:国内不少工具确实不在仓库里,比如火绒、OO ShutUp10、umi-OCR 这类在 winget 索引里查不到包,只能从官网下载安装。这类软件建议单独记一份清单,并把官方安装包一并存进备份盘。
  3. 绿色版 / 便携版:不属于任何包管理器,靠整目录拷贝迁移最省事。

补完之后重新 winget export 一次,让清单始终等于现状。

顺手两条日常维护命令

winget upgrade          # 列出有哪些已装软件可升级
winget upgrade --all    # 全部升到最新

批量升级前建议先看清列表:某些软件(尤其带内核驱动或后台服务的)升级后需要重启或重新授权,别在赶时间的时候一把梭。

想要更进一步的干净做法

把常用的软件 ID 直接手写进一份自己的 apps.json,放在网盘或 Git 仓库里当「装机脚本」。本站收录的软件里,凡是详情页标了 WinGet 徽标的都可以直接抄进清单,例如 7zip.7zip、voidtools.Everything、Microsoft.PowerToys、Mozilla.Firefox、VideoLAN.VLC、Zotero.Zotero。这样重装系统时先跑这条 import,再手动装那几个没有包标识的,半小时就能回到工作状态。

涉及的软件

相关技巧