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

PowerShell技术问题:变量字符串拼接、默认应用删除及数组遍历

PowerShell 删除Windows 10默认应用:常见问题+数组遍历+字符串拼接指南

刚上手PowerShell删默认应用踩坑很正常,我来一步步帮你解决问题,顺便把数组遍历和字符串拼接的技巧也讲清楚~

一、修复删除默认应用的报错问题

最常见的报错原因无非这几个:没以管理员身份运行、应用ID拼写错、部分系统核心应用根本删不了。先给你一个能正常运行的基础脚本,再解释细节:

首先务必右键PowerShell选择「以管理员身份运行」,这是很多人忽略的前提。

针对当前用户删除应用

# 删除单个应用(示例:Xbox)
Get-AppxPackage *xbox* | Remove-AppxPackage -ErrorAction SilentlyContinue

针对所有用户删除预装应用

如果要彻底删掉新用户登录时也会出现的预装应用,要用Provisioned相关命令:

# 删除所有用户的Instagram应用
Get-AppxProvisionedPackage -Online | Where-Object DisplayName -like "*Instagram*" | Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue

报错避坑说明:

  • 加-ErrorAction SilentlyContinue是因为有些系统核心应用(比如Edge、设置)无法删除,加这个参数可以忽略这类错误,不让脚本中断。
  • 应用名称用通配符*包裹(比如*xbox*),PowerShell不区分大小写,不用纠结大小写拼写。

二、把应用名称存入数组并遍历删除

把要删的应用放进数组里批量处理更高效,直接看示例:

# 定义要删除的应用名称数组(用通配符或完整包名都可以)
$appsToRemove = @(
    "*xbox*",
    "*instagram*",
    "*twitter*",
    "*skype*",
    "*solitairecollection*"
)

# 遍历数组,删除当前用户的应用
foreach ($app in $appsToRemove) {
    Write-Host "正在处理: $app"
    Get-AppxPackage $app | Remove-AppxPackage -ErrorAction SilentlyContinue
}

# 如果要给所有用户删除,用下面的循环
foreach ($app in $appsToRemove) {
    Write-Host "正在为所有用户处理: $app"
    Get-AppxProvisionedPackage -Online | Where-Object DisplayName -like $app | Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue
}

关键说明:

  • 数组用@()定义,每个元素是一个应用的匹配字符串,换行写更清晰。
  • foreach ($app in $appsToRemove)会逐个取出数组里的应用,$app就是当前循环的目标应用。
  • Write-Host用来输出进度,方便你看脚本在处理哪个应用。

三、PowerShell中变量与字符串的拼接方法

这里给你三种最常用的拼接方式,按需选择:

1. 双引号直接嵌入变量(最推荐)

PowerShell会自动解析双引号里的变量:

$appName = "Xbox"
$message = "正在删除应用: $appName"
Write-Host $message
# 输出:正在删除应用: Xbox

如果变量后面紧跟字符串,要用花括号把变量包起来避免歧义:

$appName = "Xbox"
$message = "正在删除${appName}应用"
Write-Host $message
# 输出:正在删除Xbox应用

2. 加号直接拼接

和其他语言的拼接逻辑类似:

$appName = "Instagram"
$message = "正在删除应用: " + $appName
Write-Host $message
# 输出:正在删除应用: Instagram

3. -f格式化字符串(适合多变量场景)

当需要拼接多个变量时,这种方式更整洁:

$appName = "Twitter"
$status = "成功"
$message = "应用{0}删除{1}" -f $appName, $status
Write-Host $message
# 输出:应用Twitter删除成功

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:40:43