¿Cómo determinar la cantidad total de archivos en carpetas y subcarpetas, por extensión?

¿Cómo determinar la cantidad total de archivos en carpetas y subcarpetas, por extensión?

¿Cómo se podría recorrer una carpeta y sus subcarpetas (directorio y sus subdirectorios) y enumerar cuántos archivos de una determinada extensión hay en total, para cada extensión que ocurre en esas carpetas?

Algo parecido a esto,

folders               48 total
.jpg                2842 total
.gif                 142 total
.CR2                2842 total

La suma de lo anterior debe ser la misma que el total en dir/sel que se enumeran todos los archivos y subcarpetas de alguna carpeta.

Respuesta1

Si no es necesario que sea una línea de comandos, puede usar WinDirStat.http://windirstat.info/download.htmlingrese la descripción de la imagen aquí

Respuesta2

El siguiente fragmento de código podría ayudar:

@ECHO OFF >NUL
SETLOCAL EnableExtensions
rem EnableDelayedExpansion
rem next line: clear/delete all `_filesTotal` environment variables
for /F "delims==" %%G in ('set _filesTotal 2^>NUL') do set "%%G="
rem next line: initialize `_foldersTotal` environment variable
set "_foldersTotal=0"
pushd "folder where count"
for /F "delims=" %%G in ('dir /B /S /A') do (
  if exist "%%~G\" (
    rem folder %%G
    set /A "_foldersTotal+=1"
  ) else (
    rem   file %%G
    if "%%~xG"=="" (set /A "_filesTotal.+=1") else (set /A "_filesTotal%%~xG+=1")
  )
)
rem next two lines: display raw results
echo %CD%
set _foldersTotal
set _filesTotal
popd

Recursos(lectura obligatoria):

Respuesta3

Le insto a que considere un enfoque Powershell para su pregunta. Son un poco menos de líneas de código con la capacidad de ordenar la salida...

$foldercount = 0
$hash = @{}
Get-ChildItem -Path "C:\Code Samples" -Recurse | ForEach-Object { 
    if ($_.Attributes -eq 'Directory') 
        { 
        ++$foldercount
        }
    else
        {
        if ($hash.ContainsKey($_.Extension)) 
            { $count = $hash.Get_Item($_.Extension); ++$count; $hash.Set_Item($_.Extension, $count) }
        else
            { $hash.Add($_.Extension, 1) } 
        }
}

Write-Host $foldercount folders
$hash.GetEnumerator() | Sort-Object Value -descending

Y produce este resultado para mi carpeta de muestra...

90 folders

Name                           Value                                                                                                                                                                                                 
----                           -----                                                                                                                                                                                                 
.tlog                          186                                                                                                                                                                                                   
.h                             72                                                                                                                                                                                                    
.obj                           56                                                                                                                                                                                                    
.cpp                           54                                                                                                                                                                                                    
.pdb                           26                                                                                                                                                                                                    
.manifest                      24                                                                                                                                                                                                    
.res                           23                                                                                                                                                                                                    
.rc                            22                                                                                                                                                                                                    
.log                           15                                                                                                                                                                                                    
.lastbuildstate                12                                                                                                                                                                                                    
.ipch                          12                                                                                                                                                                                                    
.ico                           12                                                                                                                                                                                                    
.exe                           12                                                                                                                                                                                                    
.idb                           12                                                                                                                                                                                                    
.vcxproj                       11                                                                                                                                                                                                    
.ilk                           11                                                                                                                                                                                                    
.user                          11                                                                                                                                                                                                    
.sdf                           11                                                                                                                                                                                                    
.zip                           11                                                                                                                                                                                                    
.filters                       11                                                                                                                                                                                                    
.sln                           11                                                                                                                                                                                                    
.pch                           11                                                                                                                                                                                                    
.txt                           8                                                                                                                                                                                                     
.gif                           8                                                                                                                                                                                                     
.rc2                           8                                                                                                                                                                                                     
.aps                           8                                                                                                                                                                                                     
.bmp                           7                                                                                                                                                                                                     
.dsw                           6                                                                                                                                                                                                     
.dsp                           6                                                                                                                                                                                                     
.png                           5                                                                                                                                                                                                     
.css                           5                                                                                                                                                                                                     
.html                          4                                                                                                                                                                                                     
.old                           4                                                                                                                                                                                                     
.XML                           4                                                                                                                                                                                                     
.vcproj                        4                                                                                                                                                                                                     
.xslt                          4                                                                                                                                                                                                     
.exp                           3                                                                                                                                                                                                     
.dll                           3                                                                                                                                                                                                     
.lib                           3                                                                                                                                                                                                     
.clw                           2                                                                                                                                                                                                     
.def                           2                                                                                                                                                                                                     
.opt                           2                                                                                                                                                                                                     
.ncb                           2                                                                                                                                                                                                     
.plg                           2                                                                                                                                                                                                     
.recipe                        2                                                                                                                                                                                                     
.rtf                           1                                                                                                                                                                                                     
.jpg                           1                                                                                                                                                                                                     
.h original                    1                                                                                                                                                                                                     
.bat                           1                                                                                                                                                                                                     
.js                            1                                                                                                                                                                                                     
.cpp original                  1                                                                                                                                                                                                     
.DPbcd                         1                                                                                                                                                                                                     

Respuesta4

Este es un enfoque muy simple y eficiente. find . -type f | sed -n 's/..*\.//p' | sort | uniq -c

información relacionada