如何使用PowerShell按日期分组文件?

时间:2010-03-26 02:13:35

标签: powershell scripting file grouping

我有一个包含2000多个文件的文件夹。我想按日期计算文件。

所以:

  Mode                LastWriteTime     Length Name  
   ----                -------------     ------ ----  
   -a---        2010-03-15  12:54 AM   10364953 file1.txt  
   -a---        2010-03-15   1:07 AM   10650503 file2.txt  
   -a---        2010-03-16   1:20 AM   10118657 file3.txt  
   -a---        2010-03-16   1:33 AM    9735542 file4.txt  
   -a---        2010-03-18   1:46 AM   10666979 file5.txt  

我想看看:

Date         Count
----------   ------
2010-03-15   2  
2010-03-16   2  
2010-03-18   1

谢谢!

2 个答案:

答案 0 :(得分:14)

Group-Object可以很容易地处理这类杂务:

Get-ChildItem | Group {$_.LastWriteTime.ToString("yyyy-MM-dd")} | Sort Name

如果您只想在Format-Table上查看日期和计数,如下所示:

Get-ChildItem | Group {$_.LastWriteTime.ToString("yyyy-MM-dd")} | Sort Name | 
    Format-Table Name,Count -auto

答案 1 :(得分:2)

您可以使用哈希表来收集您需要的信息gci是get-childitem的别名

 $dict = new-object -t system.collections.hashtable
 gci * |? { $dict[$_.lastwritetime.date]++ }
 $dict