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

为何PowerShell删除90天以上文件时会误删子文件夹内文件?

问题原因及解决办法

你的代码会删除子目录中符合条件的文件,核心原因是用了Get-ChildItem的-Recurse参数——这个参数的作用就是递归遍历目标路径下的所有层级子目录,它会把C:\powershell根目录,以及所有嵌套子文件夹里的文件都扫一遍,自然会把这些位置里符合时间条件的文件也筛选出来删除。

如果只想处理C:\powershell根目录下的直接文件,不要碰子目录,只需要去掉-Recurse参数就行。另外建议加上-File参数,避免误删符合时间条件的文件夹(Get-ChildItem默认会返回文件和文件夹对象),修正后的代码如下:

Get-ChildItem -Path "C:\powershell" -File | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-90) } | Remove-Item

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:24:31