Contar arquivos em uma pasta e subpastas da linha de comando

2

Como faço para contar todos os arquivos de um determinado tipo (por exemplo, * .mp3) em uma pasta designada (e, opcionalmente, subpastas) da linha de comando para uma variável de ambiente?

(sem PowerShell, por favor, apenas comandos em lote)

    
por ZEE 18.07.2015 / 01:33

3 respostas

2
set filesCount=0 & for %f in (*) do @(set /a filesCount+=1 > nul)
    
por 18.07.2015 / 02:25
4

Contar arquivos em uma pasta e subpastas

Use o seguinte comando:

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

A variável de ambiente %count% conterá o número de arquivos.

Nota:

  • Remova /s se você não quiser contar arquivos em subpastas.

Exemplo (usando * .txt)

Lista de diretórios para mostrar os 17 arquivos:

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

Execute o comando:

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

Outras leituras

por 18.07.2015 / 02:20
1

Use uma combinação de dir e find para contar os arquivos. Armazene os arquivos em uma variável através do loop for . Reduza a saída de erro para nul para ocultar File Not Found error.

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

Veja descrições de parâmetros usando /? para dir , find e for .

    
por 18.07.2015 / 01:46