Powershell getchild-item按特定日期

时间:2011-11-29 22:29:06

标签: powershell

我正在尝试查找前一天要复制的文件,但是我的简单get-childitem无效。它适用于除-eq之外的所有其他开关。是否有建议仅列出前一天的文件?

get-childitem c:\ users | where-object {$ _。LastWriteTime -eq(get-date).adddays(-2)}

2 个答案:

答案 0 :(得分:2)

您正在寻找在确切时间(小时,分钟,年,月和前2天)写入的文件。除非文件写入第二天,两天(或一天),否则您将找不到它们。换句话说,您正在比较完整的DateTime个对象而不仅仅是一个日期,因此它们完全相等的可能性非常小,这似乎表明-eq不起作用,但其他比较做。

您可能只想比较日期,没有时间:

$yesterday = (get-date).AddDays(-1).Date
gci c:\users | ?{ $_.LastWriteTime.Date -eq $yesterday}

(也将获取日期移到了外面,因为你可能不想一次又一次地这样做。)

答案 1 :(得分:1)

他们不是相等因为他们的时间不同。如果您想要精确匹配日期,请使用日期属性:

get-childitem c:\users| where-object {$_.LastWriteTime.Date -eq (get-date).adddays(-2).Date}