0

我有这个精彩的脚本:

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

输出是:

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

我想要的是在当前目录的每个目录上运行相同的脚本(非递归)。例如,如果我在目录c:\test中,并且该目录作为文件夹alex,lizaharry, 那么我希望将此脚本应用于c:\test\alex, c:\test\liza,c:\test\harry

我想要的输出是:

4352    .JPG    directory name
2352    .doc    directory name
2135    .pdf    directory name
1811    .xls    directory name
1472        directory name
857 .pub    directory name
732 .xlsx   directory name
565 .docx   directory name

如何修改上述脚本以对每个目录执行此操作并附加目录名称?

4

2 回答 2

1

格式重要吗?如果没有,您可以按多个属性分组。

gci -Recurse| 
    where {$_.LastWriteTime -gt (Get-Date).AddDays(-45)}|
    group Extension, Directory -NoElement
于 2013-01-30T22:33:12.120 回答
1

试试这个

Get-ChildItem c:\test | Where-Object {$_.PSIsContainer} | ForEach-Object{
   $folder = $_.FullName
   Get-ChildItem $_.FullName -Recurse | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-45)} | Group-Object Extension -NoElement | Select-Object Name,Count,@{n='Directory';e={$folder}}
}
于 2013-01-31T09:20:51.690 回答