You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 07:02:08