Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 13.08.2019
Сообщений: 24

Поиск файлов определённой даты и веса в CMD

07.12.2022, 12:40. Показов 1893. Ответов 4

Студворк — интернет-сервис помощи студентам
Взываю к мудрости, форумчане.
Стоит задача написания батника.

Есть папка: D:\Test

В ней два подкаталога:
D:\Test\12345
D:\Test\567890

И в них по три файла:
D:\Test\12345\1_file_2022_05_05__09_30_0 0.txt
D:\Test\12345\2_file_2022_05_06__10_30_0 0.txt
D:\Test\12345\3_file_2022_05_07__11_30_0 0.txt

D:\Test\567890\4_file_2022_05_08__12_30_ 00.txt
D:\Test\567890\5_file_2022_05_09__13_30_ 00.txt
D:\Test\567890\6_file_2022_05_10__14_30_ 00.txt

Эти файлы разного веса.

Помогите пожалуйста создать батник, который будет выполнять следующие условия:
1) Запускаться из D:\Test
2) Искать файлы в диапазоне от 2022_05_06 до 2022_05_09 и размером, меньше 15 kb
3) Сохранять список в D:\Test\list.txt

К сожалению, моих "знаний" хватило на то, чтобы сделать поиск всех txt-файлов и вывод в текстовый документ.

chcp 1251
cd "D:\Test"
dir "D:\Test\*.txt" /s /o:gen >"D:\Test\list.txt"
exit

Заранее большое спасибо и плюс в карму.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.12.2022, 12:40
Ответы с готовыми решениями:

Копирование файлов до определенной даты с сохранением структуры
Необходимо из одной папки, в которой находиться около 1.5к папок с папками и файлами, перенести в отдельную папку все файлы, которые старше...

Удаление файлов в каталогах и подкаталогах старше определенной даты последнего изменения
Уважаемые эксперты, помогите разобраться. Есть OpenBrowserDialog через него выбираем корневой каталог, в нем содержатся подкаталоги с...

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

4
 Аватар для Angry Old Man
3045 / 747 / 313
Регистрация: 26.03.2022
Сообщений: 1,398
Записей в блоге: 1
07.12.2022, 22:53
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Echo Off
cls
rem Set Fold="Z:\Test\12345" "Z:\Test\567890"
    Set Fold="%~dp012345" "%~dp0567890"
 
    Set "DT1=2022_05_06"
    Set "DT2=2022_05_09"
    Set /A Size=15000
 
    Set "Mask=*_*_20??_??_??__??_??_??.txt"
    >"%~dpnx0.log" (For %%d In (%Fold%) Do For %%f In ("%%d\%Mask%") Do (
        FOR /F "usebackq tokens=3,4,5 delims=_" %%i In (`2^>nul Dir %%f /B /A:-D`) DO (
            If %DT1% LEQ %%i_%%j_%%k If %%i_%%j_%%k LEQ %DT2% If  %%~zf LEQ %Size% Echo %%f %%~zf
        )
    ))
pause
Exit /B
1
0 / 0 / 0
Регистрация: 13.08.2019
Сообщений: 24
08.12.2022, 14:48  [ТС]
Огромное спасибо за помощь. Подскажите, а можно усовершенствовать функционал?
1) Если нам понадобится поиск не в двух папках, а в двух сотнях или тысячах? Я имею ввиду, чтобы поиск был рекурсивный. Насколько я понимаю, нам нужен параметр /r , но как правильно построить код - понимания, увы, нет.
2) Это скорее вопрос, чем условие: если нам нужно будет найти файлы в диапазоне не трёх дней, а, скажем, шести месяцев, нужно будет просто поменять значения переменных DT1 и DT2? Или этот код уже не подойдёт пот такие значения?
Заранее большое спасибо!
0
 Аватар для Angry Old Man
3045 / 747 / 313
Регистрация: 26.03.2022
Сообщений: 1,398
Записей в блоге: 1
08.12.2022, 17:29
Лучший ответ Сообщение было отмечено Rumdel как решение

Решение

Вот еще вариант, все подпапки в одной папке
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Echo Off
cls
    Set Fold="Z:\Test"
    Set "Mask=*_*_20??_??_??__??_??_??.txt"
 
    >"%~dpnx0.log" Call :Out 2022_05_06 2022_05_09 15000
pause
Exit /B
 
:Out
    FOR /F "usebackq delims=" %%f In (`2^>nul Dir %Fold%\%Mask% /B /A:-D /S`) DO (
        If %%~zf LEQ %3 (
            Set "Size=             %%~zf"
            FOR /F "tokens=3,4,5 delims=_" %%i In ("%%~nxf") DO (
                If %1 LEQ %%i_%%j_%%k If %%i_%%j_%%k LEQ %2 Call Echo %%Size:~-10%%b  %%f
            )
        )
    )
Exit /B
Даты могут быть любыми в формате 20ГГ_MM_ДД, первая дата должна быть меньше второй.

Добавлено через 1 час 13 минут
Слегка изменил код, всё-таки убрал хулиганство со сравнением строки как чисел
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Echo Off
cls
    Set Fold="Z:\Test"
    Set "Mask=*_*_20??_??_??__??_??_??.txt"
 
    >"%~dpnx0.log" Call :Out 2021_05_06 2023_05_09 15000
pause
Exit /B
 
:Out
    Set "Dt1=%1" &Set "Dt2=%2"
    Set /A Dt1=%Dt1:_="%, Dt2=%Dt2:_="%
 
    FOR /F "usebackq delims=" %%f In (`2^>nul Dir %Fold%\%Mask% /B /A:-D /S`) DO (
        If %%~zf LEQ %3 (
            Set "Size=             %%~zf"
            FOR /F "tokens=3,4,5 delims=_" %%i In ("%%~nxf") DO (
                If %Dt1% LEQ %%i%%j%%k If %%i%%j%%k LEQ %Dt2% Call Echo %%Size:~-10%%b  %%f
            )
        )
    )
Exit /B
1
0 / 0 / 0
Регистрация: 13.08.2019
Сообщений: 24
09.12.2022, 10:22  [ТС]
Спасибо огромное, код работает как надо. Только вот если много файлов и папок, то программа работает очень долго. Притом, проводил эксперимент: в одну из сотен папок кинул тестовый файл. Программа находит и записывает его в лог быстро. А если таких файлов сотни, то время работы возрастает значительно. Получается, что поиск выполняется быстро, а логирование медленно. Но это не беда. Самое главное - работает. Спасибо вам ещё раз огромное!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2022, 10:22
Помогаю со студенческими работами здесь

Поиск файлов по определенной маске
Подскажите, плиз, как сделать сабж. Т.е. мне нужно найти все файлы с расширением *.txt на диске C: и D: Заранее ВАМ благодарен.

Поиск файлов определенной длины
Добрый день! Подскажите пожалуйста как найти на диске файлы с расширением .jpg больше определенной длины, например 15. Понял что нужно...

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

Поиск файлов с расширением .odt в определенной директории
Всем привет, только учусь программированию на python. Необходима помощь в написании программы, суть: 1. В директории скрипта есть папка...

NAnt - поиск файлов XML в определенной директории
Нужна помощь в nant, в общем нужно что-бы он в определенной директории искал файлы .xml, а в них находил определенный ключ. Добавлено...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru