March 24, 2009 at 3:03 pm
I am looking to code for a batch job to send out an email if the output text file from a job has a particular word. Trying to see if I can use vbscript for that. Has anybody done anything like that?
Thanks,
Vidhya
March 24, 2009 at 10:58 pm
Hi vidya
here is the complte script your looking for
'Set the pattern you are looking for
strPatternMatch = "wordtofind"
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Pattern = strPatternMatch
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Set Folder = objFSO.GetFolder(strFolderToPatternMatch)
'For Each File In Folder.Files
' if UCASE(right(File.Name,13)) = "LETTERPCE.LOG" then
'Set objFile = objFSO.OpenTextFile(strFolderToPatternMatch & "\" & File.Name, ForReading)
Set objFile = objFSO.OpenTextFile("a.txt") ', ForReading)
Do Until objFile.AtEndOfStream
strSearchString = objFile.ReadLine
Set colMatches = objRegEx.Execute(strSearchString)
If colMatches.Count > 0 Then
strFound = "1"
'For Each strMatch in colMatches
' LogFile.WriteLine """" & strPatternMatch & """" & " found in " & strFolderToPatternMatch & "\" & File.Name
'Next
End If
Loop
objFile.Close
Wscript.Echo strFound
' now send a mail if we found the word we are looking for
If strFound = "1" Then
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "from@test.com"
objEmail.To = "to@test.com"
objEmail.Subject = "Log"
objEmail.Textbody = "Log line"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"smtphostip"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
End IF
' End If
'Next
Shekhar.. :))
March 25, 2009 at 8:23 am
Shekhar,
Thanks for the script. I modified it at my end and am trying to run it and I only get a blank box pop up. It is not sending mail. Can you tell where I am wrong here?
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Set Folder = objFSO.GetFolder(strFolderToPatternMatch)
'For Each File In Folder.Files
' if UCASE(right(File.Name,13)) = "test.log" then
'Set objFile = objFSO.OpenTextFile(strFolderToPatternMatch & "\" & File.Name, ForReading)
Set objFile = objFSO.OpenTextFile("C:\SQLjobs\oncall\log\test.log") ', ForReading)
Do Until objFile.AtEndOfStream
strSearchString = objFile.ReadLine
Set colMatches = objRegEx.Execute(strSearchString)
If colMatches.Count > 0 Then
strFound = "1"
'For Each strMatch in colMatches
' LogFile.WriteLine """" & strPatternMatch & """" & " found in " & strFolderToPatternMatch & "\" & File.Name
'Next
End If
Loop
objFile.Close
Wscript.Echo strFound
' now send a mail if we found the word we are looking for
If strFound = "1" Then
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "vidhya.kumar@cree.com"
objEmail.To = "vidhya.kumar@cree.com"
objEmail.Subject = "SQL Server not responding"
objEmail.Textbody = "Unable to connect to SQL Server"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"smtp-outsrvr.cree.com"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
End IF
' End If
'Next
March 25, 2009 at 1:59 pm
Thanks! I figured it out. Its working great!!
Vidhya.
Viewing 4 posts - 1 through 4 (of 4 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy