如何使用Winget批量卸载多个软件?是否有更优方法?
如何使用Winget批量卸载多个软件
你目前用&&串联多个卸载命令的方式可行,但可以用以下几种更高效的批量实现方式:
方法1:PowerShell循环卸载
把需要卸载的应用ID整理成数组,通过循环逐个执行卸载命令,适合管理较多应用的场景:
# 定义要卸载的应用ID数组 $appIds = @( "Microsoft.ZuneVideo_8wekyb3d8bbwe", "Microsoft.YourPhone_8wekyb3d8bbwe" # 可继续添加更多应用ID ) # 循环执行卸载 foreach ($id in $appIds) { winget uninstall --id $id }
如果需要确保前一个应用卸载成功后再执行下一个,可在循环内添加退出码判断:
foreach ($id in $appIds) { winget uninstall --id $id if ($LASTEXITCODE -ne 0) { Write-Warning "卸载 $id 失败,终止后续操作" break } }
方法2:批处理脚本卸载
适合习惯使用CMD的用户,创建一个.bat文件,写入以下内容:
@echo off :: 定义要卸载的应用ID,用空格分隔 set "appIds=Microsoft.ZuneVideo_8wekyb3d8bbwe Microsoft.YourPhone_8wekyb3d8bbwe" :: 循环执行卸载 for %%i in (%appIds%) do ( echo 正在卸载 %%i... winget uninstall --id "%%i" ) pause
双击运行该批处理文件即可自动批量卸载。
方法3:按条件批量卸载(进阶)
如果要卸载符合特定规则的应用(比如所有微软预装的UWP应用),可以结合winget list过滤结果后批量卸载:
# 筛选出微软发布的UWP应用并执行卸载 winget list --publisher Microsoft | Where-Object { $_ -match "Microsoft\..*_8wekyb3d8bbwe" } | ForEach-Object { $appId = $_.ToString().Split()[0] winget uninstall --id $appId }
内容的提问来源于stack exchange,提问作者Victor Farias
相关产品推荐
相关产品推荐

