
如果您已安装 Windows 程序包管理器(winget),但尚未批量更新本地软件,可能是由于未执行升级命令或权限不足。以下是实现一键更新所有已安装应用到最新版本的具体操作路径:
一、确认 winget 已启用并处于最新状态
winget 命令行工具本身需保持更新,否则可能无法识别新版本软件或报错。更新 winget 自身是执行批量升级的前提。
1、以管理员身份运行 Windows 终端(PowerShell 或命令提示符)。
2、输入命令:winget upgrade –id Microsoft.Winget.Source 并回车。
3、等待输出显示“成功完成”后,再次运行 winget –version 验证版本号是否已提升。
二、列出所有可更新的软件
该步骤用于预览待升级项,避免误操作,并确认目标软件是否被 winget 索引。
1、在管理员终端中执行:winget upgrade。
2、观察输出表格中的“Name”、“Id”、“Version”和“Available”四列,确认需更新的软件是否出现在列表中。
3、若某软件未显示,说明其未通过 winget 安装,或其 ID 未被源仓库收录,不可用此方式批量更新。
三、执行全部软件一键更新
该操作将遍历 winget 源中所有匹配的已安装软件,并自动下载、安装其最新可用版本,无需逐个指定。
1、确保网络连接正常且具备管理员权限。
2、在管理员终端中输入:winget upgrade –all 并回车。
3、系统将逐项提示“正在升级 X”,每项完成后显示“成功”或“跳过”。部分软件可能要求交互确认,此时按 Y 确认继续。
四、跳过特定软件的批量更新
当某些软件(如生产环境依赖的固定版本工具)不应被自动升级时,可通过排除机制避免其参与 –all 操作。
1、先运行 winget upgrade 获取目标软件的完整 Id(例如:OpenJS.NodeJS)。
2、执行带排除参数的命令:winget upgrade –all –exclude “OpenJS.NodeJS”。
3、如需排除多个,使用空格分隔多个 Id:winget upgrade –all –exclude “OpenJS.NodeJS” “Microsoft.Powershell”。
五、静默模式下全自动更新所有软件
适用于脚本化部署或无人值守维护场景,全程不弹出提示、不中断、不等待用户输入。
1、管理员终端中运行:winget upgrade –all –silent –accept-package-agreements –accept-source-agreements。
2、该命令自动接受所有许可协议、跳过交互确认、隐藏安装过程界面。
3、执行完成后,可通过 winget list 再次比对版本号,验证更新结果。

评论(0)