43

我使用 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'
4

3 回答 3

66

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

Get-ChildItem 'PATH' -recurse -include @("*.tif*","*.jp2","*.pdf") | 
    Where-Object { $_.CreationTime -ge "03/01/2013" -and $_.CreationTime -le "03/31/2013" }
于 2013-04-08T16:34:12.970 回答
3

使用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'
于 2013-04-08T16:39:05.707 回答
2

修复...

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
于 2014-12-02T14:25:44.870 回答