Powershell搜索文件按特殊日期排序



每当我尝试以下命令获取按日期筛选的所有文件

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(等于),它应该这样做。

最新更新