Powershell Get-ChildItem的多个计数?

时间:2013-06-10 20:29:13

标签: powershell

我如何使用powershell计算文件夹下的文件数和文件夹数,模拟该文件夹的Windows“属性”?

FAQ表示交叉发布是正常的,因此完整的问题可以在以下网址找到:https://superuser.com/questions/605911/multiple-counts-from-powershell-get-childitem

2 个答案:

答案 0 :(得分:3)

基本上,您需要枚举给定路径的所有文件和文件夹,并维护每种对象类型的计数:

$files=$folders=0
$path = "d:\temp"

dir $path -recurse | foreach { if($_.psiscontainer) {$folders+=1} else {$files+=1} }

"'$path' contains $files files, $folders folders"

答案 1 :(得分:0)

修改

编辑以提高效率并停止循环...

也可以将Measure-Object cmdlet与Get-childItem cmdlet一起使用来完成此操作:

gci "C:\" -rec | Measure -property psiscontainer -max -sum | Select `
    @{Name="Path"; Expression={$directory.FullName}},
    @{Name="Files"; Expression={$_.Count - $_.Sum}},
    @{Name="Folders"; Expression={$_.Sum}}

<强>输出:

Path                 Files           Folders
----                 -----           -------
C:\Test              470             19