【发布时间】:2013-06-06 14:28:13
【问题描述】:
如何使用 powershell 来计算文件夹下的文件数和文件夹数,模拟该文件夹的 Windows“属性”?
FAQ 表示可以交叉发布,因此可以在以下位置找到完整问题:https://superuser.com/questions/605911/multiple-counts-from-powershell-get-childitem
【问题讨论】:
标签: powershell
如何使用 powershell 来计算文件夹下的文件数和文件夹数,模拟该文件夹的 Windows“属性”?
FAQ 表示可以交叉发布,因此可以在以下位置找到完整问题:https://superuser.com/questions/605911/multiple-counts-from-powershell-get-childitem
【问题讨论】:
标签: powershell
基本上,您需要枚举给定路径的所有文件和文件夹并维护每种对象类型的计数:
$files=$folders=0
$path = "d:\temp"
dir $path -recurse | foreach { if($_.psiscontainer) {$folders+=1} else {$files+=1} }
"'$path' contains $files files, $folders folders"
【讨论】:
编辑:
经过编辑以提高效率并停止循环...
这也可以通过使用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
【讨论】:
gci 并循环遍历它返回两次的集合。如果目录结构不断变化,您可能会在两次调用之间得到不同的gci 输出。