2013-04-08 37 views
20

我使用Powershell命令来生成某些文件类型的CSV报告。我的目标是找出在特定日期范围内添加了多少个。现在,脚本找到了一切,我按日期排序找到我的号码。我想修改该命令以仅在创建日期范围内返回对象,即,如果此文件是在2013年3月1日至2013年3月31日之间创建的。可能有办法将命令限制在日期范围内,可能使用Select-对象,我只是无法弄清楚。通过文件创建限制Powershell Get-ChildItem日期范围

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' 
+0

为了记录在案,我我不熟悉Powershell d不知道要搜索什么。我使用的命令是从其他地方在线获取的。我没有搜索谷歌找到这个答案,并没有能够;这就是我对使用Select-Object的想法来自何处。我拒绝并憎恨你的陈述,这应该是一个帮助论坛;但是,我感谢你的帮助。 – Nathan 2013-04-08 18:52:12

+3

+1,因为Nathan *做了努力。不熟悉某项技术(甚至可能不知道要搜索什么内容)的人和不努力的人之间有区别。 [澄清我以前的评论 - “+ 1”表示我提高了你的问题来抵消downvotes] :-) – 2013-04-08 19:11:30

+1

我想我只是期待更多。一个简单的搜索“powershell获取文件创建日期”谷歌会给他的一切,除了“ - 和”的第一击,你不需要PowerShell的知识拿出该搜索短语=) – 2013-04-09 16:26:59

回答

34

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

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

请使用块引用将4个空格添加到'Get-ChildItem' – HKTonyLee 2015-04-28 04:00:38