Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Сканирование папки и отправка электронной п. (http://forum.oszone.net/showthread.php?t=304876)

Dexlaer 03-09-2015 11:27 2548998

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

Elven 03-09-2015 11:59 2549016

Чтобы реагировало на появление сразу так это служба нужна. Если же достаточно проверки раз в минуту можно через шедулер проверять и через Blat отправлять.
Теперь немного конкретики: как отличить свежепоявившийся файл от ранее находившихся в папке? Как они изменяются до того момента как перестают считаться новыми?

Dexlaer 03-09-2015 13:48 2549084

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

Elven 03-09-2015 13:53 2549088

Цитата:

Цитата Elven
как отличить свежепоявившийся файл от ранее находившихся в папке? Как они изменяются до того момента как перестают считаться новыми? »


Dexlaer 03-09-2015 14:17 2549100

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

Elven 03-09-2015 15:28 2549151

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

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 2549205

Задача хорошо решается на WSH (подписка посредством Wbem) или PowerShell (слежение посредством .Net или подписка посредством Wbem).

Цитата:

Цитата Dexlaer
Желательно батник, чтобы без сторонних программ. »

И это тоже — «без сторонних программ».


Время: 18:38.

Время: 18:38.
© OSzone.net 2001-