PowerShell脚本优化需求:遍历指定子文件夹并按创建时间清理旧文件
PowerShell 清理指定子文件夹中14天前创建的文件
完整单行脚本
Get-ChildItem -Path D:\Test\Test_[1-9] -File -Recurse | Where-Object { $_.CreationTime -lt (Get-Date).AddDays(-14) } | Remove-Item -WhatIf
关键参数说明
-Path D:\Test\Test_[1-9]:精准匹配D:\Test下的Test_1到Test_9子文件夹,用[1-9]通配符避免误匹配其他命名的文件夹。-File:仅处理文件,防止误删文件夹。-Recurse:遍历每个目标子文件夹下的所有层级子目录,确保深层文件也能被清理。Where-Object { $_.CreationTime -lt (Get-Date).AddDays(-14) }:替换为你需要的CreationTime判断逻辑,筛选出创建时间早于14天前的文件。-WhatIf:测试模式,运行时仅输出将要删除的文件列表,不会实际执行删除操作。确认结果符合预期后,去掉该参数即可执行真实删除。
额外提示
如果需要同时清理清理后产生的空文件夹,可以在脚本末尾追加以下内容:
| Get-ChildItem -Directory -Recurse | Where-Object { $_.GetFiles().Count -eq 0 -and $_.GetDirectories().Count -eq 0 } | Remove-Item
另外要确保运行脚本的账号拥有D:\Test目录下的删除权限,否则会出现权限报错。
内容的提问来源于stack exchange,提问作者L0x0d0nta
相关产品推荐
相关产品推荐

