<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS:Как создать лог-файл, если при запуске скрипта произошла ошибка?]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=10395</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10395&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS:Как создать лог-файл, если при запуске скрипта произошла ошибка?».]]></description>
		<lastBuildDate>Fri, 13 Feb 2015 00:11:57 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS:Как создать лог-файл, если при запуске скрипта произошла ошибка?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=91505#p91505</link>
			<description><![CDATA[<p>Если есть несколько проверок на ошибки, то они могут сами сообщать, какая сработала.</p><p>Если запускать код через ScriptControl, то есть ScriptControl.Error.Line</p>]]></description>
			<author><![CDATA[null@example.com (shiz)]]></author>
			<pubDate>Fri, 13 Feb 2015 00:11:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=91505#p91505</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS:Как создать лог-файл, если при запуске скрипта произошла ошибка?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=91503#p91503</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (ViRTUE)]]></author>
			<pubDate>Thu, 12 Feb 2015 22:45:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=91503#p91503</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS:Как создать лог-файл, если при запуске скрипта произошла ошибка?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=91386#p91386</link>
			<description><![CDATA[<div class="codebox"><pre><code>cscript.exe C:\sendmail.vbs 2&gt;&gt;C:\sendmail.log</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (shiz)]]></author>
			<pubDate>Tue, 10 Feb 2015 14:54:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=91386#p91386</guid>
		</item>
		<item>
			<title><![CDATA[VBS:Как создать лог-файл, если при запуске скрипта произошла ошибка?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=91348#p91348</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (ViRTUE)]]></author>
			<pubDate>Mon, 09 Feb 2015 13:54:36 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=91348#p91348</guid>
		</item>
	</channel>
</rss>
