我已将我的一些代码合并到以下内容中:
Option Explicit
Dim oShell : Set oShell = WScript.CreateObject ("WScript.Shell")
Dim FSO : set FSO = CreateObject("Scripting.FileSystemObject")
Dim StartTime,Elapsed
'msgBox(oShell.CurrentDirectory)
'MsgBox(FSO.GetFile(Wscript.ScriptFullName).ParentFolder )
oShell.CurrentDirectory = FSO.GetFile(Wscript.ScriptFullName).ParentFolder
StartTime = Timer
oShell.run "ParentChildLinkFinal.vbs", 1, True
oShell.run "Parent_Child_Merge_final.vbs", 1, True
oShell.run "CycleTime.vbs", 1, True
oShell.run "Baddata.vbs", 1, True
oShell.run "Matrixrefresh.vbs", 1, True
Elapsed = Timer - StartTime
MsgBox("Total time taken to finish this task:" & Elapsed & "in Seconds")
现在这里的一个问题是 - 假设任何文件中发生错误CycleTime.vbs
,但控件然后转到下一个Baddata.vbs
文件,而不杀死文件。Main.vbs
那么如何处理这个,如果发生错误,停止main.vbs
那里本身或让执行继续。
根据丹尼尔
"IF NOT oShell.run("CycleTime.vbs", 1, True) = 0 then Wscript.Quit 将替换您当前用于在 Main.vbs 中调用“CycleTime.vbs”的行
IF oShell.run("CycleTime.vbs", 1, True) = 99 then Wscript.Quit 还将替换您当前用于调用“CycleTime.vbs”的行。不同之处在于您没有指定 CycleTime.vbs 如何出错。如果它可能以出现运行时错误并停止执行的方式失败,您将需要使用第一个选项。如果发生错误,即您使用错误捕获进行捕获,您可以使用代码退出。就像 WScript.Quit 99。然后您可以通过我提供给您的第二个版本检查脚本是否以该代码结尾。这真的取决于你想如何处理你正在调用的脚本的失败。”
为什么采用这种方法
@DanielTrue
帮助脚本暂停执行,直到当前 .vbs 完成。但是我正在寻找任何特殊值,如果我可以从每个 .vbs 返回一个特殊值,通过它main.vbs
可以知道它当前的 .vbs 已成功完成,让我们开始下一个 .vbs 。但是是的,如果只有成功,那么下一个将开始。目前我看到假设任何.vbs都发生错误,然后一旦我关闭错误窗口,下一个脚本就开始运行。因此,我正在尝试至少思考是否可以将任何成功的完整通信发送到main.vbs
. 那么有可能吗?