|
Компьютерный форум 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 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Бред конечно, но...
@echo off echo Введите дату в формате DD.MM.YYYY set /p dt= pushd="d:\test" 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" pause > NUL popd exit /b 0 вместо d:\test подставить нужный диск/каталог чтобы избежать иероглифов сохранить батник в 866 кодировке. |
Последний раз редактировалось Elven, 11-08-2015 в 11:36. Отправлено: 11:27, 11-08-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Цитата Elven:
Спасибо большое за внимание к моей проблеме, но почему то не получилось, я забиваю дату и ничего не происходит... |
|
Отправлено: 11:40, 11-08-2015 | #3 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать |
Отправлено: 11:54, 11-08-2015 | #4 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Elven, я проверил наличие в одной из папок файла сертификата с сегодняшней датой создания, а батничек почему то его не видит, не подскажете что ещё может быть не так?
Elven, а может можно все строчки которые он собрал записать в TXT файл? |
|
Отправлено: 13:23, 11-08-2015 | #5 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать
Так будет в файл. Ну и так исправил койчаво.
|
Отправлено: 15:05, 11-08-2015 | #6 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата Альберт_25:
:: Пакетный файл с данным кодом сохраните в кодировке "OEM-866"! @echo off& setlocal set "dir=X:\" :: Присвоение переменной "exclude" исключений в качестве значения (обратите внимание на точки с запятой): set exclude="X:\Файлы\Сертификаты\OLD";"X:\Файлы\OLD"; echo Введите дату в формате "дд.мм.гг" или "дд.мм.гггг" (без кавычек). set/p "$date="& cls& if not defined $date exit/b 1 cmd/v/c echo.!$date!| ^ findstr/x "[0-3][0-9]\.[0-1][0-9]\.[0-9][0-9] [0-3][0-9]\.[0-1][0-9]\.[0-9][0-9][0-9][0-9]"&& ^ echo.|| exit/b 2 pushd "%dir%"&& set n=0|| exit/b 3 for /f "delims=" %%i in ('2^>nul dir/a-d/b/s "*.cer"^| findstr/ilv /c:%exclude:";=\\" /c:%?') do ( for /f "delims=" %%j in ('dir/a/-c/tc "%%i"^| findstr/b %$date:.=.[0-9]*%') do ( set/a n+=1 cmd/c set/a n& echo ^) %%i ) ) popd& echo.& echo Итого найдено: %n% сертификат (-а, -ов). pause>nul& endlocal& exit/b 0 |
|
Отправлено: 21:27, 11-08-2015 | #7 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Georgio, Elven, вы конечно бесспорно шарите в Бат файлах и т.п., но у меня почему то это не работает...
Цитата Georgio:
|
|
Отправлено: 08:29, 12-08-2015 | #8 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Альберт_25:
Цитата Альберт_25:
Альберт_25, вот этот код должен работать, в изначальном, признаю, допустил одну ошибку. Точнее две, но одинаковые ![]() С кода Georgio я, как всегда, косею (в хорошем смысле). На всякий случай, Georgio, Вы часом не матерый комп с ИИ? Местами кажется, что батник писался не построчно, а как-то весь сразу, а комментарии были добавлены потом чтобы "Эти тупые человеки поняли что здесь происходит". |
||
Отправлено: 08:47, 12-08-2015 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Elven:
|
|
Отправлено: 09:25, 12-08-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|