显示在过去45天内修改过的所有文件的频率分布

时间:2013-01-30 21:57:40

标签: windows powershell batch-file

我试图将这两个脚本放在一起:

这个列出了所有目录中的所有文件:

dir -recurse | group-object Extension -noelement

这个列出了在特定日期之后修改的所有文件:

get-childitem –recurse | where-object {$_.lastwritetime -gt “1/13/2008”}

我的问题是第二个脚本为每个目录输出一个标题:

Mode                LastWriteTime     Length Name                                                                      
----                -------------     ------ ----                                                                      
d----        12/10/2012  11:21 AM            BUDGET                                                                    
d----        12/21/2012  12:38 PM            SPEND DOWN                                                                


    Directory: \\file\property\vt\Environmental Services\BUDGET\SPEND DOWN


Mode                LastWriteTime     Length Name                                                                      
----                -------------     ------ ----                                                                      
d----        12/13/2012  12:32 PM            2012                                                                      
d----         1/29/2013   9:50 AM            2013                                                                      


    Directory: \\le\property\vt\Environmental Services\BUDGET\SPEND DOWN\2012

我试着像这样把它们放在一起:

dir -recurse | group-object Extension -noelement | where-object {$_.lastwritetime -gt (Get-date).AddDays($somenumber)}

但这并没有产生任何结果。

如何在所有目录中以递归方式列出所有不同类型文件的计数?

这是我的预期输出:

4352    .JPG
2352    .doc
2135    .pdf
1811    .xls
1472    
857 .pub
732 .xlsx
565 .docx
66  .rtf
64  .lnk
63  .ppt
61  .url
41  .png
38  .xml
28  .htm
27  .msg

1 个答案:

答案 0 :(得分:2)

dirgci都是Get-ChildItem cmdLet的别名。只需在分组前过滤:

gci -Recurse| where {$_.LastWriteTime -gt (Get-Date).AddDays(-45)}| group Extension -NoElement