3

Как мне подсчитать все файлы данного типа (например. * .mp3) в назначенной папке (и, необязательно, подпапках) из командной строки в переменную среды?

(пожалуйста, не PowerShell, просто командные команды)

3 ответа3

4

Подсчет файлов в папке и подпапках

Используйте следующую команду:

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

Переменная среды %count% будет содержать количество файлов.

Замечания:

  • Удалите /s если вы не хотите считать файлы в подпапках.

Пример (используя * .txt)

Список каталогов для отображения 17 файлов:

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

Запустите команду:

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

дальнейшее чтение

2
set filesCount=0 & for %f in (*) do @(set /a filesCount+=1 > nul)
1

Используйте комбинацию dir и find для подсчета файлов. Сохраните файлы в переменную через цикл for . Перенаправить вывод ошибки в nul чтобы скрыть ошибку File Not Found .

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

Смотрите описания параметров, используя /? для dir , find и for .

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