|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Контроль обработки файла |
|
CMD/BAT - [решено] Контроль обработки файла
|
Новый участник Сообщения: 6 |
Доброго дня!
Есть 2 папки. В первую поступает файл-запрос, этот файл удаляется из папки, обрабатывается и во вторую папку выкладывается файл-ответ. Подскажите как можно (желательно средствами cmd) проконтролировать что на поступивший запрос в течение определенного времени поступил ответ? |
|
Отправлено: 13:24, 25-10-2016 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Для автоматизации действий, нужно четко представлять что именно нужно автоматизировать. Пока, я так вижу, посредством посредственной телепатии выясняется, что "на поступивший запрос в течение определенного времени поступил ответ". Как выглядит файл-запрос, как он связан с файлом-ответом, как определить что первому соответствует второй а не какой-то там абстрактный третий?
|
Отправлено: 13:52, 25-10-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать buravchik256, Мысли вслух
(1)--- В первую поступает файл-запрос
Имя файла? (2)--- этот файл удаляется из папки По моему скромному мнению этот файл просто удалять нельзя, его надо во время обработки скопировать (или переместить) в третью архивную папку. О чем сделать запись в лог-файл. Не может быть, что он сначала удаляется, а потом обрабатывается, как это Вы описали. (3)--- во вторую папку выкладывается файл-ответ. Чем запускается обработка? Имя файла? ИМХО, обработка должна запускаться батником, и это действие должно попасть в лог-файл. (4)--- проконтролировать что на поступивший запрос в течение определенного времени поступил ответ Это можно сделать, если имя файла-ответа каким-то образом соответствует файлу-запроса. Иначе только анализом лог-файла. В лог-файле запись типа: Время, взяли файл-запрос(имя), получили файл-ответ(имя). Это может быть реализовано в п. (3) Подозреваю, файл-ответ тоже не должен задерживаться в папке, он должен куда-то уйти? То есть, факт его формирования должен быть сразу же зафиксирован в лог-файле. Надо больше инфы о задаче ... |
------- Последний раз редактировалось megaloman, 25-10-2016 в 14:40. Отправлено: 14:33, 25-10-2016 | #3 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Простите, что плохо расписал задачу
есть 2 каталога req_dir и cert_dir Файла запроса имеет вид 1234.req, помещается в каталог req_dir. Каждые 2 минуты запускается задание в планировщике перемещающее файл 1234.req для дальнейшей обработки (обычный bat-файл командой move). С дальнейшей обработкой файла всё ок. Через некоторое время (допустим не более 2-х минут) в папку cert_dir должен прийти файл 1234.cer (имя файла то же что и у запроса. Приходит если специализированное ПО не зависло). То же задание из планировщика перемещает в файл ответа из папки cert_dir. Как можно проконтролировать что в течение 2-х минут после перемещения файла 1234.req появился файл 1234.cer ? Заранее спасибо |
Отправлено: 13:20, 07-11-2016 | #4 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 14:22, 07-11-2016 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата buravchik256:
|
|
Отправлено: 14:46, 07-11-2016 | #6 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата buravchik256:
Давайте пошагово уточним прохождение файлов. Попытаюсь, частично цитируя Ваше пояснение, уточнить описание процесса. Запрос 1234.reg приходит в каталог req_dir. Каждые 2 минуты задание перемещает 1234.req для обработки батником (условно назовём kuku.bat) командой move. Куда? В некий каталог обработчика (условно InSoft)?? Кто удаляет файл 1234.req из InSoft? В папку cert_dir (это выходная папка обработчика?) должен прийти файл 1234.cer То же задание (какое? kuku.bat ?) перемещает в файл ответа (Куда?) из папки cert_dir. Сделайте детальное описание каждого шага, чтобы не надо было ничего домысливать. |
|
------- Отправлено: 21:40, 07-11-2016 | #7 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать megaloman,
Запрос имеет вид [NNNN].req, следующий файл запроса будет иметь имя [NNNN+1].req. Имя запроса файла инкреминируется, расширение файла всегда одно - *.req Ответ на запрос имеет тоже имя файла, но с расширением *.cer - [NNNN].cer , [NNNN+1].cer Если имя файла запроса [NNNN].req равно имени файла ответа [NNNN].cer - то они соответствуют друг другу. NNNN - целое число, ограничения длины нет. К примеру текущий номер шестизначный. Пошагово: Запрос 1234.req приходит в каталог req_dir. Каждые 2 минуты включается задание KUKU.bat: - перемещает файлы *.req (в данном случае 1234.req) командой MOVE из req_dir в сетевой каталог обработчика \\Server\Import - перемещает файлы *.cer (в данном случае файл будет иметь имя 1234.cer ) командой MOVE из из сетевого каталога обработчика \\Server\Export в каталог cert_dir Примечание: файл \\Server\Export\1234.cer появляется не мгновенно,а примерно через 30-60 секунд. Обработчик получающий файл \\Sever\Import\1234.req забирает информацию о запрсе себе в базу, более файл в каталоге не хранит. Обработчик выкладывает результат в папку \\Server\Export (оттуда файл 1234.cer будет перемещён заданием KUKU.bat в папку cert_dir) После появления файла 1234.cer в каталоге cert_dir файл обрабатывается уже другой машиной (отрабатывает своё задание на другой машине). Хочу проверить что обработчик в течение 2-х(3-х) минут выложил результат 1234.cer соответствующий запросу 1234.req |
Отправлено: 11:07, 08-11-2016 | #8 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Вот решение в первом приближении. Уточните пути к каталогам
@Echo Off Set "MailIn=Z:\req_dir" Set "MailOut=Z:\cert_dir" Set "MailArc=Z:\Box_Arc" Set "ExtIn=reg" Set "ExtOut=cer" Set "ExtOk=OK" Set "SoftIn=\\Server\Import" Set "SoftOut=\\Server\Export" If Not Exist "%MailArc%" Md "%MailArc%" If Exist "%SoftOut%\*.%ExtOut%" ( FOR %%f IN ("%SoftOut%\*.%ExtOut%") DO ( If Exist "%MailArc%\%%~nf.%ExtIn%" Ren "%MailArc%\%%~nf.%ExtIn%" %%~nf.%ExtIn%.%ExtOk%" Move /Y "%%f" "%MailOut%\" >nul ) ) TASKKILL /F /IM notepad.exe >nul 2>nul Del "%MailArc%\___%~nx0.log" Pushd "%MailArc%" FOR /F "usebackq delims=" %%i IN (`Dir "%MailArc%\*.%ExtIn%" /B /A:-D /O:-D 2^>nul`) DO Echo %%~ti %%i Request unanswered >>"%MailArc%\___%~nx0.log" Popd If Exist "%MailIn%\*.%ExtIn%" ( Copy "%MailIn%\*.%ExtIn%" "%MailArc%\" >nul Move /Y "%MailIn%\*.%ExtIn%" "%SoftIn%\" >nul ) rem Del "%MailArc%\*.%ExtOk%" 2>nul If Exist "%MailArc%\___%~nx0.log" START "unanswered" /MAX Notepad.exe "%MailArc%\___%~nx0.log" 1. Удаляем вспомогательный log-файл (если он есть) из архивной папки. 2. При наличии в выходном каталоге обработчика файла, например, 1234.cer, переименовывается файл в архивной папке 1234.reg в 1234.reg.ok. Это свидетельствует о том, что выходной файл на этот запрос получен. Перемещаем 1234.cer в выходной каталог почты. 3. Просматриваем архивную папку на наличие файлов *.reg. Если такие файлы существуют, то их имя записываем в log-файл. В норме, если на все запросы получены ответы, таких файлов нет: все они переименованы в *.reg.ok или вообще удалены за ненадобностью. 4. Пришедшие во входную папку почты файл *.reg копируются в архивную папку и перемещаются во входную папку обработчика. 5. Log-файл, если существует (если имеются необработанные файлы), отображается в notepad.exe Конечно, можно notepad.exe не использовать, а применить какой-нибудь мессенджер. Когда-то я пользовался командой Net send. Но тут уже надо развивать задачу под Ваши конкретные условия. В принципе, все файлы *.ok можно удалить. У меня это закомментировано и не работает - можете исправить сами. Опять же, необработанные запросы можно вернуть ручками во входной ящик почты для повторной обработки, если это не нарушает корректной работы обработчика. Вам виднее. |
------- Последний раз редактировалось megaloman, 09-11-2016 в 10:45. Отправлено: 21:19, 08-11-2016 | #9 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Всё работает, спасибо большое! Гляньте ЛС.
|
Отправлено: 12:48, 11-11-2016 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Устройст800о обработки изображений | tobolak | Поиск драйверов, прошивок и руководств | 2 | 16-11-2013 10:57 | |
Конфигурация для обработки фотографий | Stabilo1838 | Выбор отдельных компонентов компьютера и конфигурации в целом | 7 | 22-08-2012 12:14 | |
VBS/WSH/JS - [решено] Скрипт для обработки текстогового файла! | Nastasya | Скриптовые языки администрирования Windows | 4 | 23-05-2011 21:29 | |
ПК для обработки видео | cheslav1 | Выбор отдельных компонентов компьютера и конфигурации в целом | 3 | 13-11-2010 07:19 | |
CMD/BAT - [решено] Как исключить обработку одного exe-файла из пакетной обработки нескольких файлов? | Nun-Nun | Скриптовые языки администрирования Windows | 2 | 14-05-2009 12:16 |
|