代码之家  ›  专栏  ›  技术社区  ›  Shane Castle

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

  •  4
  • Shane Castle  · 技术社区  · 15 年前

    我有一个文件夹,里面有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 回复  |  直到 15 年前
        1
  •  14
  •   Keith Hill    15 年前

    Group对象可以很容易地处理这类杂务:

    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
  •  2
  •   rerun    15 年前

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

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