我已經聯合一些我的代碼到下方:這裏是否可以在.vbs腳本中進行序列化?
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
那裏本身或讓執行繼續。
按照丹尼爾
「如果不是oShell.run( 」CycleTime.vbs「,1,TRUE)= 0,則Wscript.Quit將取代線您當前使用的叫」 CycleTime.vbs 「in Main.vbs
如果oShell.run(」CycleTime.vbs「,1,True)= 99,那麼Wscript.Quit也會替換當前用於調用」CycleTime.vbs「的行 區別是因爲你沒有指定CycleTime.vbs如何可能出錯 如果它有可能發生運行時錯誤並且停止執行,你可能想要使用第一個選項ñ。 如果發生錯誤,您陷入錯誤陷印,您可以退出代碼。就像WScript.Quit 99.然後你可以通過我提供給你的第二個版本來檢查腳本是否以該代碼結束。 這真的歸結到你要如何處理你的腳本,你所呼叫的失敗。」
爲什麼這樣的方法
@Daniel True
幫助腳本暫停執行,直至當前.vbs完成,但是我正在尋找任何特殊值,如果我可以從每個.vbs返回一個特殊值,main.vbs
將會知道它的當前.vbs成功完成,我們開始下一個.vbs。但是,如果只有成功,然後下一個會開始。目前,我認爲,假設任何.vbs出現錯誤,那麼只要我關閉了錯誤或者下一個腳本開始運行。所以我想盡可能地將任何成功的全面溝通發送到main.vbs
。那有可能嗎?
@ Hiten004這是一個好主意嗎?說,如果發生錯誤'CycleTime.vbs',我可以從'Main.vbs'中捕獲嗎? – CodeLover
使用返回錯誤代碼存在Main.vbs http://stackoverflow.com/questions/187040/how-do-i-return-an-exit-code-from-a-vbscript-console-application – Hiten004