我一直在尝试根据当前日期抓取特定年龄的文件,我发现所有使用的代码
|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列出所有内容时,参数中有明显的文件,所以格式是我能想到的全部失败
答案 0 :(得分:0)
我认为你正在尝试收集文件旧版而不是7天正确吗?如果是,则需要将-gt
交换为-lt
,因为Windows中的时间向上计数,因此大于(get-date).adddays(-7)
的值将指示在过去7天内写入的文件,而不是文件尚未写入的。另外请记住,Windows元数据非常不可靠(并且可由用户更改),因此我不会将此方法用于除基本清理之外的任何其他任何不需要100%准确性的方法。