Cuente archivos en una carpeta y subcarpetas desde la línea de comando

Cuente archivos en una carpeta y subcarpetas desde la línea de comando

¿Cómo cuento todos los archivos de un tipo determinado (por ejemplo, *.mp3) en una carpeta designada (y opcionalmente subcarpetas) desde la línea de comando en una variable de entorno?

(Sin PowerShell, solo comandos por lotes)

Respuesta1

set filesCount=0 & for %f in (*) do @(set /a filesCount+=1 > nul)

Respuesta2

Contar archivos en una carpeta y subcarpetas

Utilice el siguiente comando:

dir /b *.mp3 /s 2> nul | find "" /v /c > tmp && set /p count=<tmp && del tmp && echo %count%

La variable de entorno %count%contendrá la cantidad de archivos.

Nota:

  • Elimínelo /ssi no desea contar los archivos en las subcarpetas.

Ejemplo (usando *.txt)

Listado de directorios para mostrar los 17 archivos:

F:\test>dir /b *.txt /s
F:\test\abc.txt
F:\test\blackwhite.txt
F:\test\cpu.txt
F:\test\interface.txt
F:\test\Lorem ipsum.txt
F:\test\right.txt
F:\test\rights.txt
F:\test\software.txt
F:\test\tabs.txt
F:\test\test.txt
F:\test\this is inside junction.txt
F:\test\unique.txt
F:\test\xyz.txt
F:\test\sub\abc.txt
F:\test\sub\xyz.txt
F:\test\sub with space\junction sub with space.txt
F:\test\sub with space\xyz.txt

Ejecute el comando:

F:\test>dir /b *.txt /s 2> nul | find "" /v /c > tmp && set /p count=<tmp && del tmp && echo %count%
17

Otras lecturas

Respuesta3

Utilice una combinación de diry findpara contar los archivos. Almacene los archivos en una variable a través del forbucle. Redirigir la salida del error a nulpara ocultar File Not Foundel error.

@echo off
for /f %%i in ('dir *.xlsx /s /b 2^> nul ^| find "" /v /c') do set VAR=%%i
echo %VAR%

Consulte las descripciones de los parámetros que utilizan /?for dir, findy for.

Respuesta4

Puede aprovechar la /Lopción (lista) de robocopy. Entonces no necesitarás bucles ni tuberías complicados. Es muy rápido también.

robocopy c:\mydir c:\dummy /L /E *.mp3 *.txt
  • c:\mydir: reemplace esto con la ruta al directorio que desea buscar
  • c:\dummy: puedes dejar esto, es solo un argumento ficticio que se ignora ya que estamos usando/L
  • /L: solo lista, no copiará ni moverá nada.
  • /E: incluye subdirectorios de forma recursiva. Puede eliminar esto si no desea buscar subdirectorios.
  • Si no desea imprimir la lista de archivos y directorios, puede agregar /NFL(Sin lista de archivos) y/o /NDL(Sin lista de directorios)

Obtendrá un buen informe como el siguiente. Basta con mirar la Totalcolumna.

Source : c:\mydir

Files : *.mp3
        *.txt

--------------------------------------------------

{list of all the matching files}

--------------------------------------------------

            Total    Copied   Skipped  Mismatch    FAILED    Extras
 Dirs :         5         5         0         0         0         0
Files :        89        89         0         0         0         0
Bytes :   3.485 g   3.485 g         0         0         0         0

información relacionada