在启动时运行批处理文件VB脚本
问题描述:
我有一个名为“bootstrap.bat”和一个批处理文件,它像这个 -在启动时运行批处理文件VB脚本
@echo OFF
@echo There is an error.
wscript errorMail.vbs
@echo Error Message sent
正如你可以看到它调用一个VB脚本这是刚刚发送一封电邮。 VB脚本是 -
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "[email protected]"
objEmail.To = "[email protected]"
objEmail.Subject = "Error: Generation of Final report failed"
objEmail.Textbody = "There was an error in generating the Final report for the Test."
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"mailhost.som.net"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
当我从CMD手动运行“bootstrap.bat”,则得到正确执行VB脚本和邮件发送得到。但我有一个设置,它将在启动时运行'bootstrap.bat',但当时它不执行VB脚本。我不确定是否需要更改其他任何东西来执行VB脚本。
答
您可以尝试使用一个文件),而不是两个(保存为.bat
或.cmd
):
echo off
:sub echo(off):exit sub
set off=""'&set off=&cscript /nologo /e:vbscript "%~f0" %*&exit /b %errorlevel%
:end sub
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "[email protected]"
objEmail.To = "[email protected]"
objEmail.Subject = "Error: Generation of Final report failed"
objEmail.Textbody = "There was an error in generating the Final report for the Test."
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"mailhost.som.net"
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
WScript.Echo "Error Message sent"
还有一个similar approach。
当批处理文件从启动时运行时,可能(未测试),默认文件夹不是存储批处理文件的文件夹,因此找不到vbscript文件。尝试使用'wscript'%〜dp0errorMail.vbs'(或者脚本的完整路径,如果它位于其他文件夹中) – 2014-09-30 11:03:51
您也应该使用cscript而不是wscript。不同之处在于wscript会在调用“echo”的地方打开一个消息框,其中cscript写入控制台。 – user743414 2014-09-30 11:09:37
MC ND,谢谢你,工作。你能否把你的答案放在这里,以便我能接受它。 – 2014-09-30 13:22:37