|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Поиск файлов *.cer с заданной датой создания |
|
CMD/BAT - Поиск файлов *.cer с заданной датой создания
|
Новый участник Сообщения: 10 |
Всем привет, ребят помогите пожалуйста наваять батник со следующим функционалом.
1) запускаем батник и он просит ввести с клавиатуры дату в формате дд.мм.гг 2) ищет на диске и во всех под каталогах X:\Файлы\Сертификаты\*.cer файлы с расширением *.cer, но на диске X есть под каталоги X:\Файлы\Сертификаты\OLD и X:\Файлы\OLD в них искать не нужно (не нужно искать в папках OLD) 3) выводит список всех найденных файлов *.cer с заданной датой создания 4) и еще хотелось бы что бы русский язык выводился нормально а не иероглифами, потому что сертификаты и пути к ним пишутся на русском языке. и можно ещё их посчитать, Например: Было найдено: 1) X:\Файлы\Сертификаты\Женя\сертификат.cer 2) X:\Файлы\Сертификаты\Маша\ВходБаза.cer Итого найдено: 2 сертификата. Я думаю для знающего человека эта задача простая, я к сожалению таким не являюсь. Спасибо за понимание и помощь) |
|
Отправлено: 17:30, 10-08-2015 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Georgio, а можешь немного подправить батничек, просто он ищет файлы в папках OLD, а мне там не нужно искать...
у меня много папок с вот такой структурой: X:\Файлы\Сертификаты\биржа\OLD X:\Файлы\Сертификаты\торг\OLD X:\Файлы\Сертификаты\хрень\OLD и т.д. |
Отправлено: 11:22, 12-08-2015 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 20133
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 11:41, 12-08-2015 | #12 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Elven, спасибо за код, всё заработало)
Цитата Elven:
|
|
Отправлено: 11:53, 12-08-2015 | #13 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Если отдельно то отдельно это то вот здесь
поменять на вот так А чтобы одновременно... Ну в принципе можно: на пару строчек больше сделать и другие переменные вписать. @echo off echo Введите дату в формате DD.MM.YYYY set /p dt= pushd="d:\test" echo Дата создания %dt% >> log.txt for /f "tokens=4-5" %%b in ('dir /o:d /t:c /a:-d /s *.cer ^| find "%dt%"') do for /f "delims=" %%a in ('dir /a:-d /s /b %%b') do echo %%~fa | find /v /i "old" >> log.txt echo Дата изменения %dt% >> log.txt for /f "tokens=4-5" %%c in ('dir /o:d /t:w /a:-d /s *.cer ^| find "%dt%"') do for /f "delims=" %%d in ('dir /a:-d /s /b %%c') do echo %%~fd | find /v /i "old" >> log.txt pause > NUL popd exit /b 0 |
Последний раз редактировалось Elven, 12-08-2015 в 12:03. Отправлено: 11:57, 12-08-2015 | #14 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Цитата Elven:
Цитата Elven:
|
||
Отправлено: 12:01, 12-08-2015 | #15 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Альберт_25, Делал батник копирования файлов по дате создания - 3дня, может вдохновит на что-нибудь:
@echo off setlocal enabledelayedexpansion set "qw=%Userprofile%\Desktop\Test" rem Для изменения у всех файлов даты "модификации" "обращения" [на текущую] "nircmd" setfiletime "%qw%\*" "" now now rem Убираем лидирующий "0" из даты, если есть for /f "tokens=* delims=0" %%d in ("%date%") do ( set onosdate=%%d rem Модифицируем дату к виду: "текущая дата-3(дня)" for /f "tokens=1-3 delims=.: " %%a in ("!onosdate!") do ( rem У кого английская поменять на %%c%%b%%a set sdate=%%a%%b%%c rem У кого английская %%c%%b set dnoa=%%b%%c set range=3 set /a newa=%%a-!range! rem У кого английская !dnoa!!newa! set newsdate=!newa!!dnoa!)) rem Выделяем "дату создания" "имя" и "расширение" файлов (очень важна сортировка по дате и времени, порядок не важен) for /f "tokens=1-8 delims=.: " %%i in ('dir/a-d/o-d/tc "%qw%"^| findstr/rc:"^[^ ]"') do ( rem У кого английская %%k%%j%%i set mydate=%%i%%j%%k rem Убираем лидирующий "0" из даты, если есть for /f "tokens=* delims=0" %%q in ("!mydate!") do ( set onomydate=%%q set "namemydate=%%o.%%p%%q" rem Сравниваем "имя" "расширение" "заданная дата" = "имя" "расширение" "дата создания" файла if "%%o.%%p%newsdate%"=="!namemydate!" ( rem Дальше вольны делать с файлами, что захотим, например: copy "%qw%\%%o.%%p" "%Userprofile%\Desktop\Folder\"))) exit nircmd надо скачать здесь |
Отправлено: 19:31, 12-08-2015 | #16 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Альберт_25:
вот эта команда действительно находит все файлы с расширениием *.cer и сортирует их по дате создания, а вот эта команда находит все строчки в которых встречается дата указанная в переменной %dt% Для пущей чистоты эксперимента можно запустить прямо из командной строки (вместо указанной для примера даты вводим ту которую надо) и посмотреть что же будет на выходе. |
|
Отправлено: 08:46, 13-08-2015 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Вдруг у него региональные стандарты иные?!
|
Отправлено: 09:38, 13-08-2015 | #18 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата Альберт_25:
А вот я почему-то верю. В первом цикле ( ) действительно определяются имена (именно имена, а не полные имена) файлов, соответствующие дате создания, но вот затем это имя передаётся для разбора во второй цикл, в котором и происходит не то, что нужно ТС. Во втором цикле ( ) происходит поиск всех файлов, соответствующих данному имени и не являющихся исключениями, и дата создания уже полностью игнорируется. |
|
Отправлено: 09:49, 13-08-2015 | #19 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Georgio, поэтому я и предупредил что если есть файлы с одинаковыми именами, то мой вариант не прокатит.
Цитата Elven:
Цитата Альберт_25:
|
||
Отправлено: 10:00, 13-08-2015 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] батник для создания папки с текущей датой + время | aggressor_ | Скриптовые языки администрирования Windows | 23 | 08-02-2018 16:02 | |
CMD/BAT - [решено] Как заархивировать файлы с датой создания этих файлов? | yaoleg2 | Скриптовые языки администрирования Windows | 1 | 01-09-2013 03:09 | |
CMD/BAT - Мониторинг - поиск архивов с заданной датой в имени | Serg2010 | Скриптовые языки администрирования Windows | 0 | 21-05-2012 21:59 | |
Драйвер - Автоматический поиск драйвера в заданной папке в Windows XP | dzekka | Microsoft Windows 2000/XP | 2 | 19-10-2010 05:09 | |
Драйвер - [решено] Поиск подходящего драйвера в заданной папке с подпапками | Speaker | Microsoft Windows 2000/XP | 2 | 01-03-2008 19:07 |
|