Рекурсивно считать файлы:
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
.