Рекурсивно считать файлы:
set filesCount=0 & (for /R %f in (*) do @(set /a filesCount+=1 > nul)) & set filescount
Считать каталоги рекурсивно:
set dirsCount=0 & (for /D /R %f in (*) do @(set /a dirsCount+=1 > nul)) & set dirscount
Ресурс: команды цикла FOR.
Изменить: если вам нужны скрытые файлы, сравните следующие результаты:
d:\bat> set filesCount=0 & (for /R %f in (*) do @(set /a filesCount+=1 > nul)) & set filescount
filesCount=3095
d:\bat> set filesCount=0 & (for /F "delims=" %f in ('dir /b /s /a-h-d') do @(set /a filesCount+=1 > nul)) & set filescount
filesCount=3095
d:\bat> set filesCount=0 & (for /F "delims=" %f in ('dir /b /s /ah-d') do @(set /a filesCount+=1 > nul)) & set filescount
filesCount=10
d:\bat> set filesCount=0 & (for /F "delims=" %f in ('dir /b /s /a-d') do @(set /a filesCount+=1 > nul)) & set filescount
filesCount=3105
Применитесь к каталогам (mutatis mutandis), используя последовательно dir переключатели /aD , /aHD и /a-HD .