<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS:Как создать лог-файл, если при запуске скрипта произошла ошибка?]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10395&amp;type=atom" />
	<updated>2015-02-13T00:11:57Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=10395</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS:Как создать лог-файл, если при запуске скрипта произошла ошибка?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=91505#p91505" />
			<content type="html"><![CDATA[<p>Если есть несколько проверок на ошибки, то они могут сами сообщать, какая сработала.</p><p>Если запускать код через ScriptControl, то есть ScriptControl.Error.Line</p>]]></content>
			<author>
				<name><![CDATA[shiz]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26249</uri>
			</author>
			<updated>2015-02-13T00:11:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=91505#p91505</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS:Как создать лог-файл, если при запуске скрипта произошла ошибка?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=91503#p91503" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>shiz пишет:</cite><blockquote><div class="codebox"><pre><code>cscript.exe C:\sendmail.vbs 2&gt;&gt;C:\sendmail.log</code></pre></div></blockquote></div><p>Неплохой вариант. Из плюсов то, что показывает в какой строке ошибка. Минус - не пишет код ошибки.</p><p>Остановился на таком варианте:<br /></p><div class="codebox"><pre><code>on error resume next
Dim objFS, objEmail, objLog
Dim strEmail, strSMTP, strLog
Dim objTextStream, TXT, s
Set objFS = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set objEmail = CreateObject(&quot;CDO.Message&quot;)
strEmail = &quot;mail@mail.ru&quot;
strSMTP = &quot;smtp.mail.ru&quot;
strLog = &quot;H:\ARCHIVE\Sendmail_log.txt&quot;
Set objTextStream = objFS.GetFile(&quot;H:\ARCHIVE\Report.txt&quot;).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 = &quot;Рога и копыта &lt;mail@mail.ru&gt;&quot;
objEmail.To = &quot;mail@mail.ru&quot;
objEmail.Subject = &quot; 13-02-2015 02:42:32&quot;
objEmail.Textbody = TXT
objEmail.AddAttachment &quot;H:\START.KEY&quot;
if Err.Number &lt;&gt; 0 then
    s = &quot;&quot;
    s = &quot;Err.Number: &quot; &amp; Hex(Err.Number) &amp; vbCrLf &amp; _
        &quot;Source: &quot; &amp; Err.Source &amp; vbCrLf &amp; _
        &quot;Reason: &quot; &amp; Err.Description
    objLog.Write(s)
end if
objEmail.Configuration.Fields.Item(&quot;htt p://schemas.microsoft.com/cdo/configuration/sendusing&quot;) = 2
objEmail.Configuration.Fields.Item(&quot;htt p://schemas.microsoft.com/cdo/configuration/smtpserver&quot;) = strSMTP
objEmail.Configuration.Fields.Item(&quot;htt p://schemas.microsoft.com/cdo/configuration/smtpserverport&quot;) = 25
objEmail.Configuration.Fields.Item(&quot;htt p://schemas.microsoft.com/cdo/configuration/smtpauthenticate&quot;) = 1
objEmail.Configuration.Fields.Item(&quot;htt p://schemas.microsoft.com/cdo/configuration/sendusername&quot;) = &quot;mail@mail.ru&quot;
objEmail.Configuration.Fields.Item(&quot;htt p://schemas.microsoft.com/cdo/configuration/sendpassword&quot;) = &quot;password&quot;
objEmail.Configuration.Fields.Item(&quot;htt p://schemas.microsoft.com/cdo/configuration/smtpusessl&quot;) = True
objEmail.Configuration.Fields.Item(&quot;htt p://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout&quot;) = 60
objEmail.Configuration.Fields.Update
objEmail.Send
if Err.number &lt;&gt; 0 then
    s = &quot;&quot;
    s = &quot;Err.Number: &quot; &amp; Hex(Err.Number) &amp; vbCrLf &amp; _
        &quot;Source: &quot; &amp; Err.Source &amp; vbCrLf &amp; _
        &quot;Reason: &quot; &amp; Err.Description
    objLog.Write(s)
end if
objLog.Close
Set objLog = Nothing
Set objFS = Nothing</code></pre></div><p>Плюс в том, что пишет код и текст ошибки. Также продолжает выполнять работу при ошибках. Минус в том, что не записывает в лог в какой именно строке произошла ошибка. Вообще это возможно чтобы и строку писал в лог, где была ошибка? Если разве что объединить эти 2 варианта как-то, чтобы они записывали в разные (или один файл) ошибки. Но тогда 2 раза письмо может отправится, если ошибок не будет.</p>]]></content>
			<author>
				<name><![CDATA[ViRTUE]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=32867</uri>
			</author>
			<updated>2015-02-12T22:45:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=91503#p91503</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS:Как создать лог-файл, если при запуске скрипта произошла ошибка?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=91386#p91386" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>cscript.exe C:\sendmail.vbs 2&gt;&gt;C:\sendmail.log</code></pre></div>]]></content>
			<author>
				<name><![CDATA[shiz]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26249</uri>
			</author>
			<updated>2015-02-10T14:54:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=91386#p91386</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS:Как создать лог-файл, если при запуске скрипта произошла ошибка?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=91348#p91348" />
			<content type="html"><![CDATA[<p>Помогите, пожалуйста. Вот есть скрипт для отправки почты:<br /></p><div class="codebox"><pre><code>strEmail = &quot;mail@mail.ru&quot;
strSMTP = &quot;smtp.mail.ru&quot;
Dim objFSO
Set objFSO = WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set objFSO = Nothing
Set objEmail = CreateObject(&quot;CDO.Message&quot;)
Dim objTextStream, TXT
Set objTextStream = CreateObject(&quot;Scripting.FileSystemObject&quot;).GetFile(&quot;C:\Report.txt&quot;).OpenAsTextStream(1)
TXT = objTextStream.ReadAll()
objTextStream.Close
Set objTextStream = Nothing
objEmail.From = &quot;Рога и копыта &lt;mail@mail.ru&gt;&quot;
objEmail.To = &quot;mail@mail.ru&quot;
objEmail.Subject = &quot; 09-02-2015 17:06:51&quot;
objEmail.Textbody = TXT
objEmail.AddAttachment &quot;C:\START.KEY&quot;
objEmail.Configuration.Fields.Item (&quot;htt p://schemas.microsoft.com/cdo/configuration/sendusing&quot;) = 2
objEmail.Configuration.Fields.Item (&quot;htt p://schemas.microsoft.com/cdo/configuration/smtpserver&quot;) = strSMTP
objEmail.Configuration.Fields.Item (&quot;htt p://schemas.microsoft.com/cdo/configuration/smtpserverport&quot;) = 25
objEmail.Configuration.Fields.Item(&quot;htt p://schemas.microsoft.com/cdo/configuration/smtpauthenticate&quot;) = 1
objEmail.Configuration.Fields.Item(&quot;htt p://schemas.microsoft.com/cdo/configuration/sendusername&quot;) = &quot;mail@mail.ru&quot;
objEmail.Configuration.Fields.Item(&quot;htt p://schemas.microsoft.com/cdo/configuration/sendpassword&quot;) = &quot;password&quot;
objEmail.Configuration.Fields.Item (&quot;htt p://schemas.microsoft.com/cdo/configuration/smtpusessl&quot;) = True
objEmail.Configuration.Fields.Update
objEmail.Send</code></pre></div><p>Как сделать, чтобы при ошибке запуска этого скрипта создавался в этой же папке лог-файл, в который записывалась информация об ошибке?<br />К примеру, при отсутствии файла, который должен быть прикреплен, выдает ошибку:<br /></p><div class="codebox"><pre><code>Script: C:\sendmail.vbs
Line: 16
Char: 1
Error: The system cannot find the file specified

Code: 80070002
Source: CDO.Message.1</code></pre></div><p>Вот как сделать, чтобы всю эту информацию записать в лог-файл?<br />P.S.: поставил пробелы в htpp, т.к. ограничение на кол-во ссылок</p>]]></content>
			<author>
				<name><![CDATA[ViRTUE]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=32867</uri>
			</author>
			<updated>2015-02-09T13:54:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=91348#p91348</id>
		</entry>
</feed>
