每当我尝试以下命令获取按日期筛选的所有文件
Get-ChildItem –Recurse | Where{$_.LastWriteTime -gt "01.01.2014"}
它仍然显示所有文件,没有过滤。
输出如下所示
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 15.03.2019 19:13 .3DF Zephyr Free
d----- 17.08.2019 14:39 .android
d----- 12.04.2020 23:36 .cache
d----- 24.06.2020 19:24 .config
d----- 24.11.2020 19:06 .dbus-keyrings
…我做错什么了吗?
如评论中所述,-gt
是"大于"的。比较运算符,并且在你的帖子中显示的所有目录都有一个较新的日期,所以它的工作与广告完全一致。
如果您只想要LastWriteTime
值在特定日期的某个时间内的文件和目录,您可以执行:
# We want values in between the date at midnight, and the next day at midnight
$from = (Get-Date -Day 1 -Month 1 -Year 2014).Date
$to = $from.AddDays(1)
Get-ChildItem -Recurse { $_.LastWriteTime -ge $from -and $_.LastWriteTime -lt $to }
也就是说,我们希望文件系统项在午夜比2014年1月1日更新,但比2014年1月2日老
看起来它正在做它的工作。
如果您希望仅按特定日期进行过滤,请将-gt(大于)更改为-eq(等于),它应该这样做。