PowerShell脚本如何仅删除含指定名称的超期文件?
解决PowerShell只删除含指定关键词的超期文件问题
Hey Mik, 恭喜你已经能写出删除超期文件的PowerShell脚本啦!要实现只删除名称包含“web”的14天以上文件,用通配符其实很简单,给你两种常用的实现方式:
方法1:直接在Get-ChildItem中过滤文件名
你可以利用Get-ChildItem的-Include参数,配合通配符*web*来筛选名称中包含“web”的文件,再结合时间条件即可:
# 替换为你的目标文件夹路径 $targetFolder = "C:\Your\Target\Directory" Get-ChildItem -Path $targetFolder -Recurse -File -Include "*web*" | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-14) } | Remove-Item -WhatIf
小贴士:
*是PowerShell里的通配符,*web*表示文件名任意位置包含“web”(不管是开头、中间还是结尾都能匹配到)。加上-WhatIf参数可以先预览要删除的文件,确认没问题后再去掉这个参数执行实际删除。
方法2:在Where-Object中添加文件名过滤条件
如果你更习惯在后续的筛选环节控制,也可以在Where-Object里同时添加时间和文件名两个条件,用-like操作符配合通配符:
$targetFolder = "C:\Your\Target\Directory" Get-ChildItem -Path $targetFolder -Recurse -File | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-14) -and $_.Name -like "*web*" } | Remove-Item -WhatIf
两种方法效果完全一致,选你觉得更顺手的就行~记得先测试再执行哦!
内容的提问来源于stack exchange,提问作者G35Pilot
相关产品推荐
相关产品推荐

