|
Компьютерный форум 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 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата V!RTuE:
Цитата V!RTuE:
P.S. Логику: Цитата V!RTuE:
![]() |
|||
Отправлено: 18:04, 09-02-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Если да, то он пишет только это:
Если убрать в коде 4 строки (про которые ниже написал), то запишет без C:\cons.exe Цитата Iska:
|
||
Отправлено: 18:34, 09-02-2015 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата V!RTuE:
тогда поток вывода пойдёт по-прежнему на консоль, а поток ошибок будет перенаправлен в файл. |
|
Отправлено: 18:57, 09-02-2015 | #4 |
![]() Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Цитата Iska:
SET f=%~dp0 if exist "%f%START.KEY" echo objEmail.AddAttachment "%f%START.KEY">>"%f%ARCHIVE\sendmail.vbs" ![]() А вообще я не удачный пример привел на счет отсутствия файла. Основная причина, по которой мне надо вести лог ошибки, это когда вообще скрипт не может отработать нормально. Вот например такая ошибка на некоторых компьютерах возникает: Скрытый текст
![]() И пока не знаю как она решается (( |
||
Отправлено: 19:19, 09-02-2015 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата V!RTuE:
Цитата V!RTuE:
Option Explicit Dim objMessage On Error Resume Next Set objMessage = WScript.CreateObject("CDO.Message") If Err.Number = 0 Then On Error Goto 0 '… '… '… Set objMessage = Nothing Else Err.Clear On Error Goto 0 WScript.Echo "Can't create object [CDO.Message]" WScript.Quit 1 End If WScript.Quit 0 P.S. При использовании механизма перенаправления потока ошибок, описанного выше, стоит писать именно туда, т.е., не: а: |
||
Отправлено: 20:01, 09-02-2015 | #6 |
![]() Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Цитата:
|
||
Отправлено: 22:12, 09-02-2015 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата V!RTuE:
Цитата V!RTuE:
Цитата V!RTuE:
|
|||
Отправлено: 02:22, 10-02-2015 | #8 |
![]() Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Цитата Iska:
а возможно чтобы еще и записывало "Code: 80070002"? Он ведь есть во всплывающем окне. |
|
Отправлено: 07:39, 10-02-2015 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата V!RTuE:
Ещё раз повторю: сделайте проверку существования файла в самом скрипте. Это будет проще. |
|
Отправлено: 09:42, 10-02-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|