¿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
/s
si 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
- Un índice AZ de la línea de comando CMD de Windows- Una excelente referencia para todo lo relacionado con la línea cmd de Windows.
- encontrar- Busque una cadena de texto en un archivo y muestre todas las líneas donde se encuentra.
Respuesta3
Utilice una combinación de dir
y find
para contar los archivos. Almacene los archivos en una variable a través del for
bucle. Redirigir la salida del error a nul
para ocultar File Not Found
el 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
, find
y for
.
Respuesta4
Puede aprovechar la /L
opció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 buscarc:\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 Total
columna.
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