Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - ASP и VBScript

Страница: 1 |

 

  Вопрос: создание пути к файлу из даты Добавлено: 10.11.10 09:47  

Автор вопроса:  Zeon25
Доброго вам.
задача прилепленного ниже скрипта, делать архив из папки и отправлять на мыло. Необходима некоторая корректировка и доработка, помогите плиз
1) исключить отправку файла лога, отправлять только созданный архив
2) и наверное самое необходимое прописать меняющийся путь к папке из которой делать архив, а именно, путь такой C:\папка\2010\10\28.html -> C:\ папка \год \ месяц \ файл дата.html.

Задача в идеале такова. Нужно каждый день из C:\ папка \ отправлять файлы за вчерашний день упакованными в архиве. Получается если сегодня 28.10.2010 нужно отправить файл C:\папка\2010\10\27.html Ну и понятно с переменной месяца и года путь должен меняться.
заранее спасибо за помощь

Dim dtNow
Dim archname
Dim LogPath 'Путь к файлу лога этого скрипта
Dim LogFile 'Поток текстового файла лога этого скрипта
Dim fso
Dim fldrpath
Dim folder
Dim filelist
Dim curfile
Dim result
Dim messbody

'Имя архива, без даты.
archname = "name.rar"
'Работаем с датой.
dtNow = Now()
archdfile = Year(dtNow) & Right("00" & CStr(Month(dtNow)), 2) & Right("00" & CStr(Day(dtNow)), 2) & "_" & archname
'Путь к файлам для добалвения в архив.
fldrpath= "C:\Temp\"
'Путь и имя файла лога.
LogPath = (fldrpath & "1.txt")
'Скрипт для отправки сообщения пользователям и архивирования файла.
filePath = (fldrpath & "1.txt")
'Путь куда архивируем и имя файлаю archPath = ("H:\distrib\Panasonic\" & archdfile)
archway= "C:\"
archPath = ( archway & archdfile )
'Путь до прграммы архиватора.
winRarPath = """C:\Program Files\WinRAR\WinRAR.exe"""
'Тема емаил сообщения.
themes = "Отправляю копию " & archdfile  & " архива файла " & filePath
'Тело сообщения.
bodytext = "Отправляю архивную копию файла" & archdfile &  " на почту "
'Укажем нужную кодировку.
charset = "windows-1251"
'Тут указываем от кого отправляются сообщения.
sender = "mail"
'Список или одного получателя кому отправлять сообщения. Есди нужно указать несколько то через запятую.
recipients = "mail"
'Пароль пароль для отправителя
Passwd = "пасс"
'Сервер smtp
host = "smtp.yandex.ru"


'Архивация файла.
Set fs = CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
        WshShell.Run winRarPath & " a " & archPath & " " & filePath, 0, True

'Пишем лог.
Set FSO = CreateObject("Scripting.FileSystemObject")
IF fso.FileExists(LogPath) Then
   Set LogFile = FSO.CreateTextFile(LogPath)
   LogFile.WriteLine "============Начало лога.======================"
   LogFile.WriteLine (Now)
   LogFile.WriteLine "============Что архивируем.======================"
   LogFile.WriteLine (filePath)

set fso = createobject("Scripting.FileSystemObject")
do while not fso.folderexists(fldrpath)
loop
set folder=fso.GetFolder(fldrpath) 'установим папку
set filelist=folder.files 'прочитаем в коллекцию все подпапки
For Each curfile in filelist 'для каждой подпапки сделаем следующее:
          result = result & curfile.name & "; Атрибуты: " & curfile.attributes & "; Дата создания: " & curfile.DateCreated & _
        "; Дата посл. доступа: " & curfile.DateLastAccessed & "; Дата последнего изменения: " & curfile.DateLastModified & _
        "; Диск: " & curfile.drive & "; Находится в: " & curfile.parentfolder & _
        "; Полный путь: " & curfile.path & "; Размер: " & curfile.size/1024 & " кб; Тип: " & curfile.type
    result=result & vbcrlf & vbcrlf 'думаю из названий назначение функций понятно
Next

LogFile.Write "Здесь записаны результаты опроса папки " & fldrpath & " и всех доступных фаилов" 'напишем
LogFile.writeblanklines 2
LogFile.write "Обнаружено: " & filelist.count & " фаилов" & vbcrlf & result 'ну и собственно результаты
LogFile.WriteLine "============Файл архива, с датой.======================"
LogFile.WriteLine (archPath)
LogFile.WriteLine "============Конец лога.======================"
LogFile.WriteLine (Now)
LogFile.Close
End if

WScript.Sleep 60

set fso = createobject("Scripting.FileSystemObject")
do while not fso.folderexists(fldrpath)
    loop
set folder=fso.GetFolder(fldrpath) 'установим папку
set filelist=folder.files 'прочитаем в коллекцию все подпапки
For Each curfile in filelist 'для каждой подпапки сделаем следующее:
          messbody = messbody & curfile.name
    messbody=messbody & vbcrlf 'думаю из названий назначение функций понятно
Next

Sendmail


Sub sendmail
Set objEmail = CreateObject("CDO.Message")
objEmail.From = sender 'Тут указываем от кого отправляются сообщения.
objEmail.To = recipients 'Список или одного получателя кому отправлять сообщения.
objEmail.Subject = themes 'Тема письма.
objEmail.BodyPart.CharSet = charset
objEmail.Textbody = bodytext & vbcrlf & "Обнаружен: " & filelist.count & "-файл." & vbcrlf & messbody 'Само письмо!
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = sender 'Учетная запись.
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = Passwd 'Пароль.
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = host 'Сервер.
objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 'Порт исходящего сервера.
objEmail.AddAttachment archPath
objEmail.AddAttachment LogPath
objEmail.Configuration.Fields.Update
objEmail.Send

End sub

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #1 Добавлено: 10.11.10 12:21
vb6 принципиально, или не против подобное и на дотнете сделать? там раз эдак в 20 короче и проще

Ответить

Номер ответа: 2
Автор ответа:
 Zeon25



Вопросов: 1
Ответов: 2
 Профиль | | #2 Добавлено: 10.11.10 12:59
конечно не принципиально, просто большой кусок кода уже готов, а нужно только пути динамические к папкам прописать.

Ответить

Номер ответа: 3
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #3 Добавлено: 10.11.10 14:43
ну и зачем тебе этот кусок кода когда можно и без него?

Ответить

Номер ответа: 4
Автор ответа:
 Zeon25



Вопросов: 1
Ответов: 2
 Профиль | | #4 Добавлено: 10.11.10 20:15
Этот кусок кода упаковывает и отправляет файл, если можно и без этого кода сделать автоматическую отправку будет просто супер.

Ответить

Номер ответа: 5
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #5 Добавлено: 10.11.10 23:15
на дотнете? да как два пальца..

Ответить

Номер ответа: 6
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #6 Добавлено: 11.11.10 19:24
Пост 6й, внушение проходит нормально

Ответить

Номер ответа: 7
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #7 Добавлено: 11.11.10 20:06
:-)))))))

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам