PDA

Показать полную графическую версию : Сканирование папки и отправка электронной п.


Dexlaer
03-09-2015, 11:27
Доброго времени суток!
Прошу помочь. В папку периодически прилетают файлы, как сделать так, чтобы при появлении нового файла автоматически на почту прилетало сообщение вроде "появился новый файл "имя файла"", или просто "получены новые файлы". Желательно батник, чтобы без сторонних программ. Но если есть программа, не требующая установки, тоже можно. Почта Outlook 2013 (может это можно реализовать и через сам аутлук). На форуме общего решения не нашел. Может подскажете как лучше и проще это реализовать. Спасибо!

Elven
03-09-2015, 11:59
Чтобы реагировало на появление сразу так это служба нужна. Если же достаточно проверки раз в минуту можно через шедулер проверять и через Blat (http://www.blat.net/) отправлять.
Теперь немного конкретики: как отличить свежепоявившийся файл от ранее находившихся в папке? Как они изменяются до того момента как перестают считаться новыми?

Dexlaer
03-09-2015, 13:48
Достаточно проверять каждую минуту (но в шедулере я нашел только по дням), также можно остановить выполнение проверки после первой отправки почты. Т.е. появился файл - отправка сообщения - стоп сканирования (до следующего запуска).

Elven
03-09-2015, 13:53
как отличить свежепоявившийся файл от ранее находившихся в папке? Как они изменяются до того момента как перестают считаться новыми? »

Dexlaer
03-09-2015, 14:17
На момент появления нового файла папка будет пуста.
Все файлы в данной папке в последствии обрабатываются и уходят в архив (данная папка становится пустой). Может даже так: если папка стала не пустой то отправить сообщение на посту и прекратить слежение за папкой"

Elven
03-09-2015, 15:28
А как тогда определить время начала продолжения слежения за папкой и восстановить все это дело в шедулере? Думаю логичнее было бы перемещать куда-либо новый файл где он будет находиться до обработки, тогда это будет выглядеть как-то так:

pushd "папка_за_которой_нужно_следить"
for /f %%i in ('dir /b') do (
echo %%~ni >> log.txt
move "%%~fi" "папка_в_которую_будут_перемещаться_новые_файлы"
)
if exist log.txt (
папка_в_которой_находится_blat\blat.exe log.txt -to мыло@на.которое.нужно.отправить.список.новых.файлов
del log.txt /q /f)
popd

з.ы. Параметры blat смотреть в хелпе к нему же.

Iska
03-09-2015, 17:06
Задача хорошо решается на WSH (подписка посредством Wbem) или PowerShell (слежение посредством .Net или подписка посредством Wbem).

Желательно батник, чтобы без сторонних программ. »
И это тоже — «без сторонних программ».




© OSzone.net 2001-2012