PowerShell脚本未清理Windows「最近文件」却误删快速访问快捷方式
问题分析与修复方案
核心问题1:脚本逻辑与需求完全相反
你要删除当天创建的最近文件,但当前脚本的逻辑是删除创建时间早于1天前的文件,完全搞反了筛选条件。
核心问题2:误删快速访问快捷方式原因
Recent文件夹本身没有子目录,-Recurse参数多余,可能导致意外遍历到关联的隐藏位置- 原脚本的筛选条件错误,误删了符合“早于1天前”的快速访问快捷方式(这类快捷方式的创建时间通常较早)
修复后的脚本
# 定义当天的起始时间(零点) $todayStart = (Get-Date).Date $path = "$($env:USERPROFILE)\AppData\Roaming\Microsoft\Windows\Recent" # 删除当天创建的文件(排除文件夹) Get-ChildItem -Path $path -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -ge $todayStart } | Remove-Item -Force
关键修改点
- 把时间阈值改为
当天零点,筛选CreationTime -ge $todayStart(创建时间在当天及之后的文件),匹配你的需求 - 移除多余的
-Recurse参数,避免意外遍历其他目录 - 明确筛选逻辑,只处理文件(排除文件夹)
额外建议
- 测试时可先将
Remove-Item -Force替换为Select-Object Name, CreationTime,查看将要删除的文件列表,确认无误后再执行删除操作 - Windows的「最近文件」目录包含.lnk快捷方式和数据库文件,确认你确实需要删除这些内容
内容的提问来源于stack exchange,提问作者not_a_generic_user
相关产品推荐
相关产品推荐

