Как сгруппировать файлы по дате с помощью PowerShell? - PullRequest
4 голосов
/ 26 марта 2010

У меня есть папка с 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 ]

14 голосов
/ 26 марта 2010

Group-Object может довольно легко справиться с такой работой:

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

Если вы хотите видеть только дату и счет в Таблице форматов, как показано ниже:

Get-ChildItem | Group {$_.LastWriteTime.ToString("yyyy-MM-dd")} | Sort Name | 
    Format-Table Name,Count -auto
2 голосов
/ 26 марта 2010

Вы можете использовать хеш-таблицу для сбора необходимой информации. Gci - псевдоним get-childitem

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