![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Как создать лог-файл, если при запуске скрипта произошла ошибка? |
|
VBS/WSH/JS - [решено] Как создать лог-файл, если при запуске скрипта произошла ошибка?
|
![]() Пользователь Сообщения: 90 |
Помогите, пожалуйста. Вот есть скрипт для отправки почты:
strEmail = "mail@mail.ru" strSMTP = "smtp.mail.ru" Dim objFSO Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objFSO = Nothing Set objEmail = CreateObject("CDO.Message") Dim objTextStream, TXT Set objTextStream = CreateObject("Scripting.FileSystemObject").GetFile("C:\Report.txt").OpenAsTextStream(1) TXT = objTextStream.ReadAll() objTextStream.Close Set objTextStream = Nothing objEmail.From = "Рога и копыта <mail@mail.ru>" objEmail.To = "mail@mail.ru" objEmail.Subject = " 09-02-2015 17:06:51" objEmail.Textbody = TXT objEmail.AddAttachment "C:\START.KEY" objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSMTP objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "mail@mail.ru" objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True objEmail.Configuration.Fields.Update objEmail.Send К примеру, при отсутствии файла, который должен быть прикреплен, выдает ошибку: Вот как сделать, чтобы всю эту информацию записать в лог-файл? |
|
Отправлено: 16:16, 09-02-2015 |
![]() Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Цитата Iska:
on error resume next Dim objFS, objEmail, objLog Dim strEmail, strSMTP, strLog Dim objTextStream, TXT, s Set objFS = CreateObject("Scripting.FileSystemObject") Set objEmail = CreateObject("CDO.Message") strEmail = "mail@mail.ru" strSMTP = "smtp.mail.ru" strLog = "H:\ARCHIVE\Sendmail_log.txt" Set objTextStream = objFS.GetFile("H:\ARCHIVE\Report.txt").OpenAsTextStream(1) TXT = objTextStream.ReadAll() objTextStream.Close Set objTextStream = Nothing if (objFS.FileExists(strLog)) then set objLog = objFS.OpenTextFile(strLog, 8, False) else Set objLog = objFS.CreateTextFile(strLog, False) end if objEmail.From = "Рога и копыта <mail@mail.ru>" objEmail.To = "mail@mail.ru" objEmail.Subject = " 13-02-2015 02:42:32" objEmail.Textbody = TXT objEmail.AddAttachment "H:\START.KEY" if Err.Number <> 0 then s = "" s = "Err.Number: " & Hex(Err.Number) & vbCrLf & _ "Source: " & Err.Source & vbCrLf & _ "Reason: " & Err.Description objLog.Write(s) end if objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSMTP objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "mail@mail.ru" objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 objEmail.Configuration.Fields.Update objEmail.Send if Err.number <> 0 then s = "" s = "Err.Number: " & Hex(Err.Number) & vbCrLf & _ "Source: " & Err.Source & vbCrLf & _ "Reason: " & Err.Description objLog.Write(s) end if objLog.Close Set objLog = Nothing Set objFS = Nothing У меня всё-равно через батник запускается. Но тогда придется 2 раза запускать скрипт отправки почты (для второго раза переделать код, убрав из него всё, что касается записи в лог ошибок). Ну и получится, что в случае отсутствия ошибок, почта отправится дважды. ![]() Цитата:
|
||
Последний раз редактировалось V!RTuE, 13-02-2015 в 02:36. Отправлено: 02:27, 13-02-2015 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата V!RTuE:
«On Error Resume Next» должно находиться перед командой, которая может вызвать ошибку, а не в начале скрипта. Обработка ошибки должна происходить сразу же после команды, которая может вызвать ошибку, и сразу же следом — включение стандартной процедуры обработки ошибок («On Error Goto 0»). |
|
Отправлено: 02:35, 13-02-2015 | #12 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
V. 2010 - Ошибка при обновлении Exchange 2010 "Произошла ошибка при выполнении 'ldifde.exe' | kudrik_tt | Microsoft Exchange Server | 0 | 01-07-2014 08:07 | |
2010 - [решено] При создании сертификата произошла ошибка. Selfcert не удалось создать ваш сертификат | okshef | Microsoft Office (Word, Excel, Outlook и т.д.) | 3 | 11-11-2010 00:28 | |
[решено] Ошибка при запуске скрипта: error parsing function call | klsorat2010 | AutoIt | 4 | 24-05-2010 16:04 | |
Ошибка - [решено] Ошибка при запуске скрипта AutoIt | 00002010 | AutoIt | 12 | 06-03-2010 14:23 | |
Как создать файл с помощью CGI скрипта. | lehha | Программирование и базы данных | 1 | 20-11-2003 09:48 |
|