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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Поиск файлов *.cer с заданной датой создания

Ответить
Настройки темы
CMD/BAT - Поиск файлов *.cer с заданной датой создания

Новый участник


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

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


Всем привет, ребят помогите пожалуйста наваять батник со следующим функционалом.

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

 

Аватара для Elven

Ветеран


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

Профиль | Сайт | Отправить 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
Благодарности: 0

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


Цитата Elven:
Однако если есть файлы с одинаковыми именами лежащие в разных папках, будет уже неправда. »
Таких файлов нету)

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

Отправлено: 11:40, 11-08-2015 | #3


Аватара для Elven

Ветеран


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

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


Как вариант файлов с такой датой создания нет. Попробуйте из командной строки из каталога с файлами запустить
Код: Выделить весь код
dir /o:d /t:c /a:-d /s *.cer
будут выведены все файлы с расширением .cer отсортированные по дате создания.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:54, 11-08-2015 | #4


Новый участник


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

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


Elven, я проверил наличие в одной из папок файла сертификата с сегодняшней датой создания, а батничек почему то его не видит, не подскажете что ещё может быть не так?

Elven, а может можно все строчки которые он собрал записать в TXT файл?

Отправлено: 13:23, 11-08-2015 | #5


Аватара для Elven

Ветеран


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

Профиль | Сайт | Отправить 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" >> log.txt
pause > NUL
popd

exit /b 0
Так будет в файл. Ну и так исправил койчаво.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:05, 11-08-2015 | #6


Ветеран


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

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


Цитата Альберт_25:
1) запускаем батник и он просит ввести с клавиатуры дату в формате дд.мм.гг

2) ищет на диске и во всех под каталогах X:\Файлы\Сертификаты\*.cer файлы с расширением *.cer, но на диске X есть под каталоги X:\Файлы\Сертификаты\OLD и X:\Файлы\OLD в них искать не нужно (не нужно искать в папках OLD)

3) выводит список всех найденных файлов *.cer с заданной датой создания

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

и можно ещё их посчитать,
Например:
Было найдено:
1) X:\Файлы\Сертификаты\Женя\сертификат.cer
2) X:\Файлы\Сертификаты\Маша\ВходБаза.cer
Итого найдено: 2 сертификата. »


Код: Выделить весь код
:: Пакетный файл с данным кодом сохраните в кодировке "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
Благодарности: 0

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


Georgio, Elven, вы конечно бесспорно шарите в Бат файлах и т.п., но у меня почему то это не работает...

Цитата Georgio:
set exclude="X:\Файлы\Сертификаты\OLD";"X:\Файлы\OLD"; »
кстати у меня есть пакпи с большей глубиной вложения, X:\Файлы\Сертификаты\офис\OLD, это важно?

Отправлено: 08:29, 12-08-2015 | #8


Аватара для Elven

Ветеран


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

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


Цитата Альберт_25:
есть пакпи с большей глубиной вложения, это важно »
нет.
Цитата Альберт_25:
у меня почему то это не работает »
карма...
Альберт_25, вот этот код должен работать, в изначальном, признаю, допустил одну ошибку. Точнее две, но одинаковые .
С кода Georgio я, как всегда, косею (в хорошем смысле). На всякий случай, Georgio, Вы часом не матерый комп с ИИ? Местами кажется, что батник писался не построчно, а как-то весь сразу, а комментарии были добавлены потом чтобы "Эти тупые человеки поняли что здесь происходит".

Отправлено: 08:47, 12-08-2015 | #9


Ветеран


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

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


Цитата Elven:
На всякий случай, Georgio, Вы часом не матерый комп с ИИ? Местами кажется, что батник писался не построчно, а как-то весь сразу, а комментарии были добавлены потом чтобы "Эти тупые человеки поняли что здесь происходит". »
Elven, могу Вас заверить, что коллега Georgio живой (и не ленивый) человек.

Отправлено: 09:25, 12-08-2015 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Поиск файлов *.cer с заданной датой создания

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход