-2

Я использую dir /s для просмотра всех файлов и директив в моей папке. Но это также показ. каталоги. У меня почти 100 верхних уровней и внутри папок. Когда я выполняю вышеуказанную команду, результат не точен.

Как получить точное количество файлов и каталогов, используя окно командной строки?

1 ответ1

1

Рекурсивно считать файлы:

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 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .