使用winget export命令导出开发工具链清单:先确保winget已安装并升级,再执行winget export -o devtools.json --include-versions --source winget --source msstore(加--accept-source-agreements跳过协议确认),可精准备份VS Code、Python、Git等带版本号的开发环境配置。

想在Windows 10上快速备份当前开发环境,确保重装系统或配置新电脑时能一键还原VS Code、Python、Git、Node.js等全部工具链,不需要手动记下每个软件名和版本。
确认winget已就绪并升级到最新版
打开 PowerShell(无需管理员权限),执行:
winget --version
若返回类似 v1.8.2171 的版本号,说明已内置;若提示“无法识别”,需先安装 App Installer:打开 Microsoft Store → 搜索“应用安装程序”→ 点击“获取”安装。安装完成后重启终端再试。
为避免导出时遗漏新版软件源或出现兼容问题,强制更新 winget 自身:
winget upgrade --id Microsoft.DesktopAppInstaller --force
【必须等待该命令完全执行完毕并显示“成功”才可进行下一步】
导出当前所有已安装的开发相关应用为JSON清单
第一步:运行基础导出命令,生成默认格式清单
winget export -o devtools.json
第二步:添加 --include-versions 参数,确保导出的 JSON 中精确记录每个工具的安装版本(例如 Python.Python.3.14 而非仅 Python.Python)。这对后续在另一台机器上复现相同开发环境至关重要——不加此参数可能导致 import 时自动拉取最新版,引发兼容性问题。
第三步:指定来源为 msstore 和 winget 双源(部分开发工具如 Windows Terminal 来自商店,VS Code 默认走 winget 源):
winget export -o devtools.json --include-versions --source winget --source msstore
注意:若执行时提示“未接受源协议”,在命令末尾追加 --accept-source-agreements 即可跳过交互式确认。
精准筛选只导出开发工具链,排除无关软件
方法一:用 PowerShell 管道过滤常见开发工具关键词
winget list | Select-String -Pattern "Python|Node|Git|VSCode|Code|Docker|Postman|Java|JDK|Rust|Go|Flutter|Android|SDK|CLI|Terminal|PowerShell" | ForEach-Object { $_.ToString().Split(" ")[0] } | Sort-Object -Unique | ForEach-Object { winget export -o devtools.json --include-versions --id $_ } 2>$null
方法二:直接使用 winget search 配合 ID 批量导出(更稳定,推荐)
先查出所有匹配ID:
winget search python; winget search node; winget search git; winget search vscode
然后逐个导出并合并到同一文件(需手动拼接 JSON 数组,操作稍繁)——但如果你只要干净、可控、不含浏览器/办公软件的纯开发清单,方法一已足够可靠。
导出完成后,检查 devtools.json 文件是否包含至少 5 个以上 "PackageIdentifier" 字段,且内容含 Python.Python、Microsoft.VisualStudioCode 等典型标识。


















