如何使用PowerShell筛选并删除X盘中午夜12-6点的CCTV文件?
解决PowerShell筛选午夜12点至早6点文件的问题
我来帮你搞定这个批量筛选并删除特定时段CCTV文件的需求~ 你的核心问题是要忽略日期,只按小时段筛选文件,下面是具体的实现步骤和注意事项:
核心逻辑:提取时间的小时部分判断
不管文件是哪一天生成的,我们只需要提取它时间属性的「小时数」,判断是否在 0(午夜12点)到 5(早上5:59:59)这个区间内即可。
第一步:先预览要删除的文件(必做!避免误删)
先运行这条命令查看符合条件的文件,确认筛选结果正确后再执行删除操作:
# 注意:将CreationTime替换为LastWriteTime,如果你说的"生成时间"指的是文件最后修改时间 Get-ChildItem -Path "X:\" -Recurse -File | Where-Object { $_.CreationTime.Hour -ge 0 -and $_.CreationTime.Hour -lt 6 }
参数说明:
-Recurse:遍历X盘下所有子文件夹-File:只筛选文件,排除文件夹(避免误删文件夹)CreationTime.Hour:提取文件创建时间的小时数,范围0-23
第二步:确认无误后执行删除
如果预览的文件列表完全符合你的预期,就可以添加删除命令。建议先加 -WhatIf 参数模拟删除,再次确认操作范围:
Get-ChildItem -Path "X:\" -Recurse -File | Where-Object { $_.CreationTime.Hour -ge 0 -and $_.CreationTime.Hour -lt 6 } | Remove-Item -WhatIf
当你确认模拟结果没问题后,去掉 -WhatIf 参数,就会真正删除这些文件:
Get-ChildItem -Path "X:\" -Recurse -File | Where-Object { $_.CreationTime.Hour -ge 0 -and $_.CreationTime.Hour -lt 6 } | Remove-Item -Force
-Force:可选参数,用于删除只读属性的文件(如果你的CCTV文件有只读权限的话)
重要注意事项
- 区分时间属性:如果你的"生成时间"指的是文件最后被修改的时间,把所有
CreationTime替换成LastWriteTime即可。 - 大数量文件处理:因为你有近50万个文件,建议先在一个小的测试文件夹里验证命令,再全量运行;如果运行时卡顿,可以考虑分批次处理(比如按子文件夹逐个处理)。
- 数据备份:如果这些文件有重要价值,建议先备份一部分再执行删除操作,避免不可逆的损失。
内容的提问来源于stack exchange,提问作者iSpoon
相关产品推荐
相关产品推荐

