I prepared the powershell script for you. Try it:
$mediaLibriary = Get-Item "/sitecore/media library"
$mediafoldersTemplates = "Media folder", "Node"
$root = $mediaLibriary.Children
$table = @()
foreach($rItem in $root){
if($mediafoldersTemplates -contains $rItem.TemplateName){
$table += ProcessChildren -item $rItem
}
}
$table | Format-Table -AutoSize
function ProcessChildren($item)
{
$contOfFolders = 0
$contOfImages = 0
$children = $item.Children
$result = @()
$tempTable = @()
foreach($chItem in $children){
if($mediafoldersTemplates -contains $chItem.TemplateName)
{
$contOfFolders++
$tempTable += ProcessChildren -item $chItem
}else{
$contOfImages++
}
}
$objAverage = New-Object System.Object
$objAverage | Add-Member -type NoteProperty -Name Name -Value $item.Name
$objAverage | Add-Member -type NoteProperty -Name FolderCount -Value $contOfFolders
$objAverage | Add-Member -type NoteProperty -Name ItemCount -Value $contOfImages
$result += $objAverage
$result += $tempTable
return $result
}
You can upgrade the mediafoldersTemplates
variable in the script with a template names that you consider are folder's templates.