Batch file 在启动时从批处理文件运行VB脚本

Batch file 在启动时从批处理文件运行VB脚本,batch-file,vbscript,startup,Batch File,Vbscript,Startup,我有一个名为“bootstrap.bat”的批处理文件,它是这样的- @echo OFF @echo There is an error. wscript errorMail.vbs @echo Error Message sent 正如您所看到的,它调用的VB脚本只是发送一封电子邮件。VB脚本是- Set objEmail = CreateObject("CDO.Message") objEmail.From = "abcdmin@som.net" objEmail.To = "som.

我有一个名为“bootstrap.bat”的批处理文件,它是这样的-

@echo OFF
@echo There is an error.

wscript errorMail.vbs

@echo Error Message sent
正如您所看到的,它调用的VB脚本只是发送一封电子邮件。VB脚本是-

Set objEmail = CreateObject("CDO.Message")
objEmail.From = "abcdmin@som.net"
objEmail.To = "som.sarkar@som.net"
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:


还有一个。

当批处理文件从启动时运行时,可能未测试默认文件夹不是存储批处理文件的文件夹,因此找不到vbscript文件。尝试使用wscript%~dp0errorMail.vbs或脚本的完整路径(如果在其他文件夹中),您也应该使用cscript而不是wscript。区别在于wscript会在调用echo时打开一个messagebox,cscript会在其中写入console.MC ND,谢谢,这很有效。请把你的答案写在这里,这样我就可以接受了。
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 = "abcdmin@som.net"
objEmail.To = "som.sarkar@som.net"
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"