|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Подсчитать количество нужных файлов в папке |
|
|
Любой язык - [решено] Подсчитать количество нужных файлов в папке
|
Ветеран Сообщения: 546 |
Здравствуйте, подскажите, пожалуйста, как подсчитать количество нужных мне файлов в каждой папке. Решение нужно 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:\folder3" для папки "F:\folder1" мы указываем имя start для папки "F:\folder2" мы указываем имя terminator для папки "F:\folder3" мы указываем имя Windows Результат выполнения скрипта такой: |
|
Отправлено: 08:59, 18-11-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Формализуйте Ваше:
Цитата Alexander_88:
|
|
Отправлено: 09:13, 18-11-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать Имена файлов исправил, теперь нету одинаковых. А на счет не похожих на другие написал вроде после слов "Как вычислить такие файлы?"
если подробнее: Это все кроме тех файлов, имя которых я укажу. я указываю имя, для каждой папки, оно начинается не с начала имени файла, а с пятого символа. если указал имя "start" то это все файлы с именем "????start" (на месте вопросов может быть что угодно). Т.е. все эти файлы нужно исключить, а посчитать все остальные. |
Отправлено: 09:54, 18-11-2015 | #3 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать И как прикажете выяснять то самое кодовое слово по которому файлы "похожи" или "не похожи"? Если указывать для каждой папки такое слово вручную то есть варианты, если это нужно таинственным образом вычислить... Имхо это несколько малореально.
Для варианта указывания вручную: Разумеется можно считывать пары "папка - отличительное_имя" из файла, например, или вводить по мере нужности с клавиатуры, но это уже мелкие доработки. |
Последний раз редактировалось Elven, 18-11-2015 в 12:36. Отправлено: 12:10, 18-11-2015 | #4 |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 12:35, 18-11-2015 | #5 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать значит искомых файлов больше либо равно 20
вот здесь вот как бы спрашивается сколько "найденных файлов больше либо равно 20"? если "да" то вывести на экран сообщение ">=20" иначе вывести на экран сообщение "<20" вместо этого (или вместес этим) можно выводить что-нибудь другое, например так: |
Отправлено: 13:06, 18-11-2015 | #6 |
Ветеран Сообщения: 546
|
Профиль | Отправить PM | Цитировать а как вывести пути с именами папок? и если нельзя вывести количество, то вывести только те, где меньше 20 файлов нашлось.
У меня кстате всегда пишет >= 20, хотя по факту их меньше.. имя указал amb в папке 20 файлов, таких: ????amb и еще 4 файла разных, т.е получается количество 4, а пишется, что больше 20 |
Отправлено: 13:55, 18-11-2015 | #7 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать |
Отправлено: 15:22, 18-11-2015 | #8 |
Ветеран Сообщения: 546
|
Профиль | Отправить 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 т.е. эта папка должна вывестись, т.к. файлов меньше 20. результат должен быть: А у меня результат: ![]() |
Последний раз редактировалось Alexander_88, 18-11-2015 в 18:46. Отправлено: 18:38, 18-11-2015 | #9 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать |
Последний раз редактировалось Elven, 19-11-2015 в 11:59. Отправлено: 19:28, 18-11-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|