通过文件创建日期范围限制Powershell Get-ChildItem

时间:2013-04-08 16:20:51

标签: powershell get-childitem

我使用Powershell命令生成某些文件类型的CSV报告。我的目标是找出在特定日期范围内添加了多少。现在,脚本找到所有内容,然后按日期排序以查找我的号码。我想修改命令只返回创建日期范围内的对象,即如果此文件是在2013年3月1日到2013年3月31日之间创建的。可能有一种方法可以将命令限制为日期范围,可能使用Select-对象,我无法弄明白。

Get-ChildItem 'PATH' -recurse -include @("*.tif*","*.jp2","*.pdf") | Select-Object FullName, CreationTime, @{Name="Mbytes";Expression={$_.Length/1Kb}}, @{Name="Age";Expression={(((Get-Date) - $_.CreationTime).Days)}} | Export-Csv 'PATH\scans.csv'

3 个答案:

答案 0 :(得分:44)

使用Where-Object并测试$_.CreationTime

Get-ChildItem 'PATH' -recurse -include @("*.tif*","*.jp2","*.pdf") | 
    Where-Object { $_.CreationTime -ge "03/01/2013" -and $_.CreationTime -le "03/31/2013" }

答案 1 :(得分:2)

使用Where-Object,例如:

Get-ChildItem 'PATH' -recurse -include @("*.tif*","*.jp2","*.pdf") | 
Where-Object { $_.CreationTime -gt "03/01/2013" -and $_.CreationTime -lt "03/31/2013" }
Select-Object FullName, CreationTime, @{Name="Mbytes";Expression={$_.Length/1Kb}}, @{Name="Age";Expression={(((Get-Date) - $_.CreationTime).Days)}} | 
Export-Csv 'PATH\scans.csv'

答案 2 :(得分:1)

修正了......

Get-ChildItem C:\Windows\ -recurse -include @("*.txt*","*.pdf") |
Where-Object {$_.CreationTime -gt "01/01/2013" -and $_.CreationTime -lt "12/02/2014"} | 
Select-Object FullName, CreationTime, @{Name="Mbytes";Expression={$_.Length/1Kb}}, @{Name="Age";Expression={(((Get-Date) - $_.CreationTime).Days)}} | 
Export-Csv C:\search_TXT-and-PDF_files_01012013-to-12022014_sort.txt