Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Создать список имен папок с указанием кол-ва файлов в каждой. (http://forum.oszone.net/showthread.php?t=313061)

Metallor 24-03-2016 08:37 2619178

Создать список имен папок с указанием кол-ва файлов в каждой.
 
Здравствуйте, помогите пожалуйста в решении следующей проблемы:
В основной папке находится 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
... и т.д.

Iska 24-03-2016 09:43 2619201

Цитата:

Цитата Metallor
сколько в ней находится файлов »

Только в ней самой или включая файлы во вложенных папках?

Metallor 24-03-2016 09:48 2619202

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

megaloman 24-03-2016 10:24 2619221

Код:

@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 24-03-2016 10:37 2619231

megaloman
Получается так:
300 0001 ''Папка'' [D-4, us, Фильмы]
345 0002 Папка [часть 1] [D-4, us, Фильмы]

А хотелось бы так:
0001 ''Папка'' [D-4, us, Фильмы]
300
0002 Папка [часть 1] [D-4, us, Фильмы]
345

Iska 24-03-2016 10:46 2619234

Цитата:

Цитата megaloman
Код:

>>"%TXT%" Echo !N:~-6! %%i
»

Цитата:

Цитата Metallor
А хотелось бы так: »

Код:

>>"%TXT%" Echo %%i
>>"%TXT%" Echo !N:~-6!


megaloman 24-03-2016 16:53 2619397

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!
)

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


Время: 22:06.

Время: 22:06.
© OSzone.net 2001-