2015-08-25 168 views
2

我有我通過任務計劃程序,在Windows 7中運行良好執行一個腳本文件在Windows 10中打開一個Excel文件,而不是在Windows中工作10VBScript來通過任務計劃程序

下面的代碼片段:

Dim myxlApplication, myWorkBook 

Set myxlApplication = CreateObject("Excel.Application") 
myxlApplication.Visible = False 
Set myWorkBook = myxlApplication.Workbooks.Open(emlAttach) 
myxlApplication.DisplayAlerts = False 
myWorkBook.Application.Run "Main.Main" 
myxlApplication.DisplayAlerts = True 
myxlApplication.Quit 
Set myxlApplication = Nothing 

emlAttach早在腳本中設置的絕對路徑和文件名與擴展。

通過單擊腳本文件執行此操作時,它可以很好地工作。當將它作爲計劃任務運行時,或者強制從任務計劃程序運行時,它會詢問我要使用哪個程序來打開文件。如果我選擇Excel,它會告訴我該文件不存在。

該錯誤的文件擴展名錯誤,xlsx與變量xlsb限定的內容有關。

+0

什麼是命令行?你是否明確使用'wscript.exe myscript.vbs'或讓.VBS擴展隱式地注意開銷可執行文件? (可能必須是基於控制檯的可執行文件的csript.exe) – Jeeped

+0

目前我只是直接指向'.vbs'並期望它能夠正常工作。 我只是使用cscript而不是完美的工作。非常感謝你的幫助!如果你想把它寫成一個正式的答案,我可以把它標記爲你的答案,或者我可以自己寫出來,無論你喜歡什麼。 =) – cgc007

+0

順便說一句,我的原始方法,只指向vbs,在Win7中工作,但在Win10中出於某種原因。我不確定發生了什麼變化。 – cgc007

回答

6

執行任務計劃程序中的.VBS或作爲登錄腳本(gpedit.msc►用戶配置►Windows設置►腳本(登錄/註銷))將需要顯式引用開銷可執行文件。對於基於窗口的返回,這可以是WSCRIPT.EXE,對於基於控制檯的返回,可以是CSCRIPT.EXE。此外,如果.VBS默認與WSCRIPT.EXE關聯,則可能需要將CSCRIPT.EXE指定爲正在運行的進程以避免基於窗口的返回。

CSCRIPT.EXE c:\<path to vbs script file>\myScript.vbs 

在CMD提示符下測試命令行。如果文件夾名稱包含空格,則可能需要將其放在引號中。