![]() |
Подсчитать количество нужных файлов в папке
Здравствуйте, подскажите, пожалуйста, как подсчитать количество нужных мне файлов в каждой папке. Решение нужно PowerShell или BAT.
есть папки: "F:\folder1" "F:\folder2" "F:\folder3" В каждой из папке есть файлы. Нужно подсчитать количество файлов, не похожих на другие.. для каждой папки вывести количество (сколько файлов, не похожих на другие), а также отдельным списком те папки, в которых количество таких файлов меньше 20ти. Как вычислить такие файлы?.... Для каждой из папок я должен буду указать имя файла, начинающееся с пятого символа, без расширения. Эти файлы не будут идти в счет. А количество всех остальных файлов (кроме этих) необходимо будет вывести. Пример: список файлов: папка "F:\folder1" Код:
0001start Код:
0054terminator Код:
0054Windows для папки "F:\folder2" мы указываем имя terminator для папки "F:\folder3" мы указываем имя Windows Результат выполнения скрипта такой: Код:
Количество файлов: |
Формализуйте Ваше:
Цитата:
|
Имена файлов исправил, теперь нету одинаковых. А на счет не похожих на другие написал вроде после слов "Как вычислить такие файлы?"
если подробнее: Это все кроме тех файлов, имя которых я укажу. я указываю имя, для каждой папки, оно начинается не с начала имени файла, а с пятого символа. если указал имя "start" то это все файлы с именем "????start" (на месте вопросов может быть что угодно). Т.е. все эти файлы нужно исключить, а посчитать все остальные. |
И как прикажете выяснять то самое кодовое слово по которому файлы "похожи" или "не похожи"? Если указывать для каждой папки такое слово вручную то есть варианты, если это нужно таинственным образом вычислить... Имхо это несколько малореально.
Для варианта указывания вручную: Код:
@echo off |
Спасибо, конечно я сам буду указывать для каждой папки, как и написал в 1ом посту.
При запуске бат, просто появляется Код:
>=20 |
значит искомых файлов больше либо равно 20
вот здесь вот как бы спрашивается сколько "найденных файлов больше либо равно 20"? Код:
if %%i geq 20 Код:
(echo ^>= 20) иначе Код:
else (echo ^<20) вместо этого (или вместес этим) можно выводить что-нибудь другое, например так: Код:
@echo off |
а как вывести пути с именами папок? и если нельзя вывести количество, то вывести только те, где меньше 20 файлов нашлось.
Код:
пример: имя указал amb в папке 20 файлов, таких: ????amb и еще 4 файла разных, т.е получается количество 4, а пишется, что больше 20 |
Код:
@echo off |
вот код:
Код:
@echo off Код:
0381amb.flv т.е. эта папка должна вывестись, т.к. файлов меньше 20. результат должен быть: Код:
F:\folder1 - 5 Код:
>=20 (52) |
Подкорректировал
Код:
@echo off |
Сейчас показывает
>=20 (52) и ниже выводит список всех файлов, в которых лежит батник (хотя путь вообще другой) |
Исправил еще раз (см. предыдущий пост).
|
Спасибо, теперь количество файлов выводится правильно, и правильно определяется больше или меньше 20ти, только вот ниже зачем - то выводятся все имена этих файлов. Можно ли не выводить их? Просто в одной строке название папки, количество файлов и больше или меньше 20ти.
пример: Код:
Folder1 <20 (5) |
Сделал так
Код:
@echo off |
echo тогда тоже нужно убрать. или сделать так:
Код:
echo >NUL |
Спасибо, все, теперь все как нужно работает :)
|
Время: 09:45. |
Время: 09:45.
© OSzone.net 2001-