![]() |
Помогите создать батник для отслеживания изменений файла и отправки сообщения на майл
Доброго времени суток, есть задача следить за файлом с расширением .dbf и если в течении заданного времени не происходит его изменение, то выходит сообщение и отправляется сообщение на почтовый ящик. Очень надо
|
можно следить за размером и датой изменения
|
Под CMD такой сценарий не сделать, ну не работает он с mail.object (на форуме это есть и описание утилиты Blat тоже):
Возможные варианты сценариев можно написать на VBS, JS и PS. Предлагаю скрипт на vbs (files_control.vbs ) : Код:
Option Explicit Подсказку для написания подобного скрипта под PS можно найти з д е с ь, для JAVA мне писать лень... PS: Скрипт обновлен! Все недочеты исключены! PPS: В сценарий внесена функция отправки измененных файлов, строки выделены красным цветом. [24.08.2010] |
deepred, огромное тебе спасибо сегодня попробую!
|
скрипт работает отлично, но можно сделать так, если время последнего изменения больше скажем, 2-х часов, то тогда приходит сообщение? и второй момент, как период изменить, скажем не на дни, а на часы? Заранее большое спасибо!!!
|
Да можно сделать и по часам...
Смотри, строка DateDiff("D", objFile.DateLastModified, Now) содержит этот временной критерий - переменная "D", вхождением этой переменной могут быть: "yyyy" - год "q" - квартал "m" - месяц "y" - день года "d" - день "w" - день недели "ww" - неделя года "h" - час "n" - минута "s" - секунда , т.е. тебе нужно использовать значение интервала "h" > 2 |
deepred, да, спасибо разобрался, только немного скрипт подправили, а то он не зависимо от того менялся файл или нет отправлял сообщения.
Сделал вот так: Option Explicit Dim objFSO, objFile Dim strPath2SourceFolder Dim intPrefix, strMessage, strheadlist Dim intErrLevel Dim Message, iConf, Flds strPath2SourceFolder = "D:\Temp\1C\" intErrLevel = 0 strMessage = vbNullString Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") For Each objFile In objFSO.GetFolder(strPath2SourceFolder).Files if UCase(objFSO.GetExtensionName(objFile.Name)) = UCase("txt") And DateDiff("n", objFile.DateLastModified, Now) > 1 Then strMessage = strMessage & objFSO.GetFileName(objFile.Name) & vbCrLf End If next if len(strMessage) > 1 then strMessage = "Внимание, следующие файлы были изменены:"& vbCrLf & strMessage Set Message = CreateObject("CDO.Message") Message.To = "почтовый ящик куда придёт сообщение" Message.From = "что будет указано в графе от" Message.Subject = "RE: ! Warning!" Message.TextBody = strMessage Message.BodyPart.Charset = "windows-1251" Set iConf = CreateObject("CDO.Configuration") Set Flds = iConf.Fields Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp сервер" Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10 Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "пароль" Flds.Update Message.Configuration = iConf Message.Send end if WScript.Quit 0 Всем спасибо!!! |
хорошо, спасибо!
|
не работает :(
мэйл пишет что не авторизирован. пароль верный адрес тоже. |
Время: 11:51. |
Время: 11:51.
© OSzone.net 2001-