Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Подсчитать количество нужных файлов в папке

Ответить
Настройки темы
Любой язык - [решено] Подсчитать количество нужных файлов в папке

Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


Изменения
Автор: Alexander_88
Дата: 18-11-2015
Здравствуйте, подскажите, пожалуйста, как подсчитать количество нужных мне файлов в каждой папке. Решение нужно PowerShell или BAT.

есть папки:

"F:\folder1"
"F:\folder2"
"F:\folder3"

В каждой из папке есть файлы. Нужно подсчитать количество файлов, не похожих на другие.. для каждой папки вывести количество (сколько файлов, не похожих на другие), а также отдельным списком те папки, в которых количество таких файлов меньше 20ти.

Как вычислить такие файлы?....

Для каждой из папок я должен буду указать имя файла, начинающееся с пятого символа, без расширения. Эти файлы не будут идти в счет. А количество всех остальных файлов (кроме этих) необходимо будет вывести.

Пример:
список файлов:

папка "F:\folder1"

Код: Выделить весь код
0001start
0014
15dfgfdgdf
dfgdfg45dfgdfg45
asdfs
asdfsdf
sffdgdfg
gfh
gfhfgh
dsafsdf
0154start
dfgdfgfd
jukuk
fghdh
ykykyu
5dfgdfg44
dhfghfg
hgjghjhg
dsfgdfg
ghjghjh
fsdgdfhgfg
jkyk
sdfsgtrehrtht
fgfghfgh
wssdf
0546start
0846start
папка "F:\folder2"

Код: Выделить весь код
0054terminator
dfgdfgdfgfd
dfggfhgfh
0546terminator
1542terminator
fghfghfgh
1846terminator
папка "F:\folder3"

Код: Выделить весь код
0054Windows
kkll
0025
0546Windows
1542Windows
tdfgfg
gfhfghfg
fghhg
1846Windows
для папки "F:\folder1" мы указываем имя start
для папки "F:\folder2" мы указываем имя terminator
для папки "F:\folder3" мы указываем имя Windows

Результат выполнения скрипта такой:

Код: Выделить весь код
Количество файлов:
F:\folder1 - 23
F:\folder2 - 3
F:\folder3 - 5

Меньше 20 файлов:
F:\folder2 - 3
F:\folder3 - 5

Отправлено: 08:59, 18-11-2015

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Формализуйте Ваше:
Цитата Alexander_88:
не похожих на другие »
и приводите более вменяемый пример, когда в одном каталоге не будет сразу по несколько файлов с одинаковыми именами.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:13, 18-11-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


Имена файлов исправил, теперь нету одинаковых. А на счет не похожих на другие написал вроде после слов "Как вычислить такие файлы?"
если подробнее:
Это все кроме тех файлов, имя которых я укажу.

я указываю имя, для каждой папки, оно начинается не с начала имени файла, а с пятого символа.
если указал имя "start"
то это все файлы с именем "????start" (на месте вопросов может быть что угодно).
Т.е. все эти файлы нужно исключить, а посчитать все остальные.

Отправлено: 09:54, 18-11-2015 | #3


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


И как прикажете выяснять то самое кодовое слово по которому файлы "похожи" или "не похожи"? Если указывать для каждой папки такое слово вручную то есть варианты, если это нужно таинственным образом вычислить... Имхо это несколько малореально.
Для варианта указывания вручную:

Код: Выделить весь код
@echo off
for /f %%i in ('dir /b /a:-d "указываемая_папка" ^| find /v /c /i "указываемое_имя"') do if %%i geq 20 (echo ^>= 20) else (echo ^<20)
Разумеется можно считывать пары "папка - отличительное_имя" из файла, например, или вводить по мере нужности с клавиатуры, но это уже мелкие доработки.

Последний раз редактировалось Elven, 18-11-2015 в 12:36.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:10, 18-11-2015 | #4


Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


Спасибо, конечно я сам буду указывать для каждой папки, как и написал в 1ом посту.
При запуске бат, просто появляется
Код: Выделить весь код
>=20

Отправлено: 12:35, 18-11-2015 | #5


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


значит искомых файлов больше либо равно 20
вот здесь вот как бы спрашивается сколько "найденных файлов больше либо равно 20"?
Код: Выделить весь код
if %%i geq 20
если "да" то
Код: Выделить весь код
(echo ^>= 20)
вывести на экран сообщение ">=20"
иначе
Код: Выделить весь код
else (echo ^<20)
вывести на экран сообщение "<20"

вместо этого (или вместес этим) можно выводить что-нибудь другое, например так:
Код: Выделить весь код
@echo off
for /f %%i in ('dir /b /a:-d "указываемая_папка" ^| find /v /c /i "указываемое_имя"') do if %%i geq 20 (echo ^>= 20 ^(%%i^)) else (echo ^<20 ^(%%i^))
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:06, 18-11-2015 | #6


Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


а как вывести пути с именами папок? и если нельзя вывести количество, то вывести только те, где меньше 20 файлов нашлось.

Код: Выделить весь код
пример:
F:\folder1
F:\folder3
У меня кстате всегда пишет >= 20, хотя по факту их меньше..

имя указал amb
в папке 20 файлов, таких: ????amb и еще 4 файла разных, т.е получается количество 4, а пишется, что больше 20

Отправлено: 13:55, 18-11-2015 | #7


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
@echo off
set name="указываемое_имя"
popd "указываемая_папка"
for /f %%i in ('dir /b /a:-d ^| find /v /c /i %name%') do if %%i geq 20 (
echo ^>= 20 ^(%%i^)
dir /b /a:-d ^| find /v /i %name%
) else (
echo ^<20 ^(%%i^)
dir /b /a:-d ^| find /v /i %name%
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:22, 18-11-2015 | #8


Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


вот код:

Код: Выделить весь код
@echo off
set name="amb"
popd "F:\folder1"
for /f %%i in ('dir /b /a:-d ^| find /v /c /i %name%') do if %%i geq 20 (
echo ^>= 20 ^(%%i^)
dir /b /a:-d ^| find /v /i %name%
) else (
echo ^<20 ^(%%i^)
dir /b /a:-d ^| find /v /i %name%
)
список файлов в папке:
Код: Выделить весь код
0381amb.flv
0382amb.flv
0383amb.flv
0384amb.flv
0385amb.flv
0386amb.flv
0387amb.flv
0388amb.flv
0389amb.flv
0390amb.flv
0391amb.flv
0392amb.flv
0393amb.flv
0394amb.flv
0395amb.flv
0396amb.flv
0397amb.flv
0398amb.flv
0399amb.flv
0400amb.flv
0401amb.flv
0402amb.flv
0403amb.flv
0404amb.flv
0405amb.flv
0406amb.flv
0407amb.flv
0408amb.flv
0409amb.flv
0410amb.flv
0411amb.flv
0412amb.flv
0413amb.flv
0414amb.flv
0415amb.flv
0416amb.flv
0417amb.flv
0418amb.flv
0419amb.flv
0420amb.flv
hgjghjghjgh.flv
video_29011.flv
video_29257.flv
video_32580.flv
video_32653.flv
получается должно найтись только 5 файлов (я в имени указал amb).
т.е. эта папка должна вывестись, т.к. файлов меньше 20.

результат должен быть:

Код: Выделить весь код
F:\folder1 - 5
А у меня результат:
Код: Выделить весь код
>=20 (52)
недопустимый ключ "v".

Последний раз редактировалось Alexander_88, 18-11-2015 в 18:46.


Отправлено: 18:38, 18-11-2015 | #9


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Подкорректировал
Код: Выделить весь код
@echo off
set name="amb"
pushd "F:\folder1"
for /f %%i in ('dir /b /a:-d ^| find /v /c /i %name%') do if %%i geq 20 (
echo ^>= 20 ^(%%i^)
dir /b /a:-d | find /v /i %name%
) else (
echo ^<20 ^(%%i^)
dir /b /a:-d | find /v %name%
)
popd

Последний раз редактировалось Elven, 19-11-2015 в 11:59.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:28, 18-11-2015 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Подсчитать количество нужных файлов в папке

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Просьба помочь в сортировке нужных файлов Mikle_home88 Скриптовые языки администрирования Windows 1 10-07-2015 15:16
количество одновременных подключений к расшаренной папке Baggurd Microsoft Windows NT/2000/2003 13 26-06-2014 18:11
Службы - Количество одновременных подключений к общей папке interminable Microsoft Windows 2000/XP 1 24-11-2010 11:41
Посчитать количество файлов в папке Lodoss AutoIt 10 21-08-2009 04:12
[решено] выполнение нужных файлов ПОСЛЕ установки. как? Vizit0r Автоматическая установка Windows 2000/XP/2003 23 20-06-2008 17:03




 
Переход