代码就像现在这样
get-childitem c:\pstbak\*.* -include *.pst | Where-Object { $_.LastWriteTime -lt (get-date).AddDays(-3)} |本质上,我试图做的是获得一个列表中的所有PST文件在上述文件夹的基础上,他们是新的3天以上。然后我想计算一下结果。上面的代码没有错误,但返回的结果为零(文件夹中肯定有比三天更新的PST文件。有谁知道吗?
发布于 2013-06-28 23:56:36
试试这个:
(Get-ChildItem -Path c:\pstbak\*.* -Filter *.pst | ? {
$_.LastWriteTime -gt (Get-Date).AddDays(-3)
}).Count发布于 2016-03-26 00:31:09
与之前的响应非常相似,但来自当前目录,它查看任何文件,并且仅查找4天前的文件。这就是我的研究所需要的,上面的答案都非常有帮助。谢谢。
Get-ChildItem -Path . -Recurse| ? {$_.LastWriteTime -gt (Get-Date).AddDays(-4)}发布于 2015-10-10 19:42:40
这里是Dave Sexton提供的解决方案的一个小更新。很多时候,你需要多个过滤器。Filter参数只能接受单个字符串,而-Include参数可以接受字符串数组。如果你有一个大的文件树,那么只比较一次日期也是有意义的,而不是针对每个文件。以下是我的更新版本:
$compareDate = (Get-Date).AddDays(-3)
@(Get-ChildItem -Path c:\pstbak\*.* -Filter '*.pst','*.mdb' -Recurse | Where-Object { $_.LastWriteTime -gt $compareDate}).Counthttps://stackoverflow.com/questions/17366675
复制相似问题