Get-childitem由lastwritetime过滤

时间:2016-11-30 21:23:18

标签: powershell powershell-v3.0

我一直在尝试根据当前日期抓取特定年龄的文件,我发现所有使用的代码

|where {$_.lastwritetime -gt (get-date).adddays(-7)}

但我没有得到任何结果,我测试了

(get-date).adddays(-7)

并以与

返回的日期不同的格式返回正确的日期
get-childitem |select lastwritetime

但我似乎无法格式化字符串中的get-date以匹配lastwritetime的格式,是否有什么东西我缺少?我怎么能让这个工作?

具体来说我只是测试看看如何通过lastwritetime过滤来制作练习的备份脚本,现在我试图列出所有超过X天的文件

get-childitem |where {$_.lastwritetime -gt (get-date).adddays(-7)}

没有错误但没有结果,当我只用lastwritetime列出所有内容时,参数中有明显的文件,所以格式是我能想到的全部失败

1 个答案:

答案 0 :(得分:0)

我认为你正在尝试收集文件旧版而不是7天正确吗?如果是,则需要将-gt交换为-lt,因为Windows中的时间向上计数,因此大于(get-date).adddays(-7)的值将指示在过去7天内写入的文件,而不是文件尚未写入的。另外请记住,Windows元数据非常不可靠(并且可由用户更改),因此我不会将此方法用于除基本清理之外的任何其他任何不需要100%准确性的方法。