如何编写批量移除应用脚本

wen 实用脚本 2

本文目录导读:

如何编写批量移除应用脚本

  1. Windows 系统脚本
  2. Linux 脚本
  3. macOS 脚本
  4. Android 脚本(需要 adb)
  5. 使用建议
  6. 注意安全

我来帮你编写批量移除应用的脚本,针对不同操作系统提供多种方案:

Windows 系统脚本

PowerShell 脚本(推荐)

# 批量卸载应用脚本
# 使用方法:以管理员身份运行 PowerShell
# 定义要卸载的应用列表
$appsToRemove = @(
    "Microsoft.BingWeather",
    "Microsoft.XboxApp",
    "Microsoft.XboxGameCallableUI",
    "Microsoft.XboxGamingOverlay",
    "Microsoft.XboxIdentityProvider",
    "Microsoft.XboxSpeechToTextOverlay",
    "Microsoft.Xbox.TCUI",
    "Microsoft.ZuneMusic",
    "Microsoft.ZuneVideo",
    "Microsoft.3DBuilder",
    "Microsoft.MixedReality.Portal"
)
# 遍历并卸载应用
foreach ($app in $appsToRemove) {
    Write-Host "正在移除: $app" -ForegroundColor Yellow
    Get-AppxPackage $app | Remove-AppxPackage
    Write-Host "成功移除: $app" -ForegroundColor Green
}
Write-Host "批量卸载完成!" -ForegroundColor Cyan

增强版 PowerShell 脚本(带错误处理)

# 批量卸载应用脚本 - 增强版
function Uninstall-BulkApps {
    param(
        [string[]]$AppNames,
        [switch]$IncludeSystemApps
    )
    # 移除所有预装应用
    $allApps = Get-AppxPackage | Where-Object {
        $_.Name -match ($AppNames -join "|")
    }
    if ($IncludeSystemApps) {
        $allApps += Get-AppxProvisionedPackage -Online | Where-Object {
            $_.PackageName -match ($AppNames -join "|")
        }
    }
    $counter = 0
    $success = 0
    $failed = 0
    foreach ($app in $allApps) {
        $counter++
        Write-Progress -Activity "批量卸载应用" -Status "处理中: $($app.Name)" -PercentComplete (($counter/$allApps.Count)*100)
        try {
            $app | Remove-AppxPackage -ErrorAction Stop
            Write-Host "✅ 成功: $($app.Name)" -ForegroundColor Green
            $success++
        } catch {
            Write-Host "❌ 失败: $($app.Name) - $($_.Exception.Message)" -ForegroundColor Red
            $failed++
        }
    }
    Write-Host "`n📊 统计结果:" -ForegroundColor Cyan
    Write-Host "总计: $counter | 成功: $success | 失败: $failed" -ForegroundColor Yellow
}

Linux 脚本

Debian/Ubuntu 系统

#!/bin/bash
# 批量卸载应用脚本 - Debian/Ubuntu
# 应用列表
apps=(
    "firefox"
    "thunderbird"
    "transmission-gtk"
    "rhythmbox"
    "totem"
    "gnome-games"
    "gnome-calendar"
    "gnome-contacts"
)
# 卸载函数
remove_apps() {
    echo "🔍 检查已安装的应用..."
    for app in "${apps[@]}"; do
        if dpkg -l | grep -q "^ii.*$app"; then
            echo "📦 正在卸载: $app"
            sudo apt-get remove --purge -y "$app" 2>/dev/null || {
                echo "❌ 卸载 $app 失败"
                continue
            }
            echo "✅ 已卸载: $app"
        else
            echo "⏭️  跳过: $app (未安装)"
        fi
    done
    echo "🧹 清理依赖..."
    sudo apt-get autoremove -y
    echo "✅ 完成!"
}
# 执行卸载
remove_apps

RPM-based 系统 (Fedora/CentOS)

#!/bin/bash
# 批量卸载应用 - Fedora/CentOS
apps=(
    "firefox"
    "libreoffice*"
    "rhythmbox"
    "totem"
)
for app in "${apps[@]}"; do
    if rpm -q "$app" &>/dev/null; then
        echo "卸载: $app"
        sudo dnf remove -y "$app"
    fi
done
sudo dnf autoremove -y

macOS 脚本

#!/bin/bash
# 批量卸载应用 - macOS
# 定义应用路径
apps=(
    "/Applications/示例应用.app"
    "com.示例.app"
)
# 卸载函数
remove_mac_apps() {
    for app in "$@"; do
        if [[ -d "$app" ]]; then
            echo "删除应用: $app"
            sudo rm -rf "$app"
        elif [[ -d "/Applications/$app.app" ]]; then
            echo "删除应用: /Applications/$app.app"
            sudo rm -rf "/Applications/$app.app"
        else
            echo "未找到: $app"
        fi
    done
}
# 执行
remove_mac_apps "${apps[@]}"

Android 脚本(需要 adb)

#!/bin/bash
# Android 批量卸载应用脚本
# 包名列表
packages=(
    "com.example.app1"
    "com.example.app2"
    "com.example.app3"
)
# 检查设备连接
if ! adb devices | grep -q "device$"; then
    echo "❌ 未连接设备"
    exit 1
fi
# 卸载应用
for package in "${packages[@]}"; do
    echo "卸载: $package"
    adb uninstall "$package"
done
echo "完成!"

使用建议

  1. 备份重要数据:卸载前确保已备份重要数据
  2. 测试环境先试:先在测试环境运行
  3. 管理员权限:大部分系统需要管理员权限
  4. 错误日志:建议添加日志记录功能
  5. 权限检查:确保有足够的权限

注意安全

  • ⚠️ 谨慎操作:某些系统应用删除后可能导致系统不稳定
  • 💾 创建还原点:Windows系统建议创建系统还原点
  • 📋 记录日志:建议保存操作日志以便回滚

需要针对特定系统或应用的详细脚本吗?

抱歉,评论功能暂时关闭!