我可以使用vbscript返回windows计划作业的最后结果吗?
我有一个在XP机器上运行的计划作业。此作业有时会失败,退出代码不是“0”。我想写一个vbscript,可以在作业后面运行,并得到“最后的结果”。如果结果不正确,那么我希望它给我发送一封电子邮件,通知我作业失败 这可能吗我可以使用vbscript返回windows计划作业的最后结果吗?,windows,batch-file,vbscript,scheduled-tasks,Windows,Batch File,Vbscript,Scheduled Tasks,我有一个在XP机器上运行的计划作业。此作业有时会失败,退出代码不是“0”。我想写一个vbscript,可以在作业后面运行,并得到“最后的结果”。如果结果不正确,那么我希望它给我发送一封电子邮件,通知我作业失败 这可能吗 for /f "tokens=3 delims=: " %A in ('schtasks /query /tn alarm2 /v /fo list^|findstr /c:"Last Result"') do echo %A 给你最后的结果 这是如何通过COM访问TS Set
for /f "tokens=3 delims=: " %A in ('schtasks /query /tn alarm2 /v /fo list^|findstr /c:"Last Result"') do echo %A
给你最后的结果
这是如何通过COM访问TS
Set service = CreateObject("Schedule.Service")
call service.Connect("Serenity")
' Get the task folder that contains the tasks.
Dim rootFolder
Set rootFolder = service.GetFolder("\")
Dim taskCollection
Set taskCollection = rootFolder.GetTasks(0)
尝试以下操作:代替计划的作业,计划类似于以下内容的脚本:
VB Script Document
option explicit
'On Error Resume Next
On Error GoTo 0
Dim strResult: strResult = Wscript.ScriptName & vbNewLine
Dim WshShell, oExec, appExitCode, appExitString
Set WshShell = CreateObject("WScript.Shell")
ShowResult( "%comspec% /C dir *.*")
ShowResult( "%comspec% /C dir*.*")
ShowResult( "YourSchedApp")
Wscript.Echo strResult
Wscript.Quit
Private Sub ShowResult( ByVal AppToRun)
strResult = strResult & vbNewLine & AppToRun & vbNewLine
On Error Resume Next
Set oExec = WshShell.Exec( AppToRun)
appExitCode = Err.Number
If appExitCode = 0 Then
Do While oExec.Status = 0
WScript.Sleep 100
Loop
appExitCode = oExec.ExitCode
appExitString = ""
Else
appExitString = "Error 0x" & Hex( appExitCode) & vbTab & Err.Description
Err.Clear
End If
On Error GoTo 0
strResult = strResult & "Exit code " & CStr( appExitCode) & vbNewLine & appExitString
Set oExec = Nothing
End Sub
在strResult变量中,您可以通过电子邮件收集所有信息…我真正想要的是从特定任务中提取最后结果的方法。我尝试了你上面的一行来获得结果,但是它在字符5处的“预期标识符”出现了错误。您还可以将任务附加到任务计划程序事件。右键单击事件查看器中的事件并创建任务以发送电子邮件。xp计算机上似乎不支持/tn开关。有没有一种方法可以在联网的机器上运行这个命令?我认为XP使用了一种不同的TS,称为Ver1。如果您查看TS应用程序或schtasks,您可以创建要运行的1版任务。您可以使用两个任务调度器指定computername、username和password。这是1版文档-