How to group files by date using PowerShell?
I have a folder with 2000+ files. I want to count the files by date.
so with:
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
I'd like to see:
Date Count
---------- ------
2010-03-15 2
2010-03-16 2
2010-03-18 1
Thanks!
Solution 1:
Group-Object can handle this sort of chore pretty easily:
Get-ChildItem | Group {$_.LastWriteTime.ToString("yyyy-MM-dd")} | Sort Name
If you only want to see the date and count tack on the Format-Table as shown below:
Get-ChildItem | Group {$_.LastWriteTime.ToString("yyyy-MM-dd")} | Sort Name |
Format-Table Name,Count -auto
Solution 2:
You can use a hash table to collect the information you need:
$dict = New-Object -TypeName System.Collections.Hashtable
Get-ChildrenItem * | Where-Object { $dict[$_.lastwritetime.date]++ }
$dict