CMD/BAT - [решено] Создать список имен папок с указанием кол-ва файлов в каждой.

Ответить
Аватара пользователя
Metallor

CMD/BAT - [решено] Создать список имен папок с указанием кол-ва файлов в каждой.

Сообщение Metallor »

Здравствуйте, помогите пожалуйста в решении следующей проблемы:

В основной папке находится 1500 подпапок

E:\Основная папка\0001 ''Папка'' [D-4, us, Фильмы]

E:\Основная папка\0002 Папка [часть 1] [D-4, us, Фильмы]

E:\Основная папка\0003 Папка [часть 2] [D-4, us, Фильмы]

E:\Основная папка\0004 Папка [часть 3] [D-4, us, Фильмы]

E:\Основная папка\0005 Папка [часть 1] [D-4, us, Фильмы]

... и т.д.



Необходимо в виде текстового документа создать такой список, в котором под именем каждой подпапки указывалось сколько в ней находится файлов

0001 ''Папка'' [D-4, us, Фильмы]

300

0002 Папка [часть 1] [D-4, us, Фильмы]

345

0003 Папка [часть 2] [D-4, us, Фильмы]

568

0004 Папка [часть 3] [D-4, us, Фильмы]

25

0005 Папка [часть 1] [D-4, us, Фильмы]

9

... и т.д.
Аватара пользователя
Metallor

Re: CMD/BAT - [решено] Создать список имен папок с указанием кол-ва файлов в каждой.

Сообщение Metallor »

Iska

В каждой подпапке находятся только файлы. Так что да, только в ней самой.
Аватара пользователя
Metallor

Re: CMD/BAT - [решено] Создать список имен папок с указанием кол-ва файлов в каждой.

Сообщение Metallor »

Код:

Код: Выделить всё

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion
Set "In=E:\Основная папка"
Set "TXT=E:\Основная папка\__Count.txt"
Del "%TXT%" >nul 2>nul
FOR /F "usebackq delims=" %%i IN (`Dir "%In%\*.*" /B /A:D 2^>nul`) DO (
	Set /A N=0
	FOR /F "usebackq delims=" %%j IN (`Dir "%In%\%%i" /B /A:-D 2^>nul`) DO Set /A N+=1
	Set "N=        !N!"
	>>"%TXT%" Echo !N:~-6!  %%i
)
Аватара пользователя
Metallor

Re: CMD/BAT - [решено] Создать список имен папок с указанием кол-ва файлов в каждой.

Сообщение Metallor »

megaloman

Получается так:

300 0001 ''Папка'' [D-4, us, Фильмы]

345 0002 Папка [часть 1] [D-4, us, Фильмы]



А хотелось бы так:

0001 ''Папка'' [D-4, us, Фильмы]

300

0002 Папка [часть 1] [D-4, us, Фильмы]

345
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Создать список имен папок с указанием кол-ва файлов в каждой.

Сообщение megaloman »

Metallor, ИМХО, мой способ представления отчета более нагляден и читаем. Как Вам хочется, можно написать

Код:

Код: Выделить всё

FOR /F "usebackq delims=" %%i IN (`Dir "%In%\*.*" /B /A:D 2^>nul`) DO (
	Set /A N=0
	FOR /F "usebackq delims=" %%j IN (`Dir "%In%\%%i" /B /A:-D 2^>nul`) DO Set /A N+=1
	>>"%TXT%" Echo %%i
	>>"%TXT%" Echo !N!
)

Пробелы впереди кол-ва файлов я делал для того, чтобы иметь возможность выровнять значения в первом столбце отчета в предыдущем решении для читаемости.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»