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

求助:编写PowerShell脚本保留Chrome/Edge用户数据并删除其余用户文件夹

解决C:\Users目录清理并保留指定浏览器数据的PowerShell脚本

你的原有脚本存在几个核心问题:

  • 第一个脚本仅筛选AppData目录,且错误地直接对Get-ChildItem返回对象使用-NotLike(该操作符需配合Where-Object使用)
  • 第二个脚本存在语法错误($.FullName应为$_.FullName),且过滤逻辑未覆盖用户目录下的所有内容
  • 第三个脚本仅删除文件而非目录,且用$_.Name匹配路径模板完全不符合需求

以下是正确的实现脚本,逻辑为:遍历C:\Users下的用户目录,删除每个用户目录中除指定浏览器数据路径外的所有内容:

# 定义需要保留的路径模板
$keepPaths = @(
    "*\AppData\Local\Google\Chrome\User Data*",
    "*\AppData\Local\Microsoft\Edge\User Data*"
)

# 遍历C:\Users下的用户目录(可根据需要添加排除系统目录,如Public、Default)
Get-ChildItem -Path "C:\Users" -Directory | ForEach-Object {
    $userDir = $_.FullName
    # 遍历当前用户目录下的所有内容(文件和目录)
    Get-ChildItem -Path $userDir -Recurse -Force | Where-Object {
        # 排除符合保留路径模板的项
        -not ($keepPaths | Where-Object { $_.FullName -like $_ })
    } | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
}

补充说明

  • 若需要排除C:\Users下的系统默认目录(如Public、Default),可在Get-ChildItem后添加过滤:
    Get-ChildItem -Path "C:\Users" -Directory | Where-Object { $_.Name -notin @("Public", "Default", "Default User") }
    
  • -ErrorAction SilentlyContinue用于忽略因文件被占用等原因导致的删除错误,可根据需要移除该参数以查看错误信息
  • 建议先移除Remove-Item部分,仅运行前面的遍历和筛选逻辑,确认待删除项符合预期后再执行删除操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 14:13:30