簡體   English   中英

使用 Windows 調度程序運行 .vbs 文件(通過批處理文件?)

[英]Using Windows Scheduler to run a .vbs file (via a batch file?)

我有一個 Excel 文件,其中包含來自 MS Access 的查詢,需要在每周一早上 6 點刷新。 目前我們使用 Business Objects 來安排這個,但我們正試圖擺脫這個,因此使用 Access/Excel。

目前我有一個 .vbs 文件:

 Set fs = CreateObject("Scripting.FileSystemObject")
 Set rootFolder = fs.GetFolder(fs.GetParentFolderName(wscript.ScriptFullName))
 Set oExcel = CreateObject("Excel.Application") 

 oExcel.Visible = True
 oExcel.DisplayAlerts = False
 oExcel.AskToUpdateLinks = False
 oExcel.AlertBeforeOverwriting = False

 For Each file in rootFolder.Files
   If inStr(file.type, "Excel") > 0 Then
     Set oWorkbook = oExcel.Workbooks.Open("Q:\Secure\testing.xlsm")
     oWorkbook.RefreshAll
     WScript.Sleep 1000 * 60
     oWorkbook.Save
     oWorkbook.Close
     Set oWorkbook = Nothing
   End If
 Next

 oExcel.Quit
 Set oExcel = Nothing

這將打開有問題的 excel 文件,刷新其中的查詢(允許一分鍾),然后保存並關閉 excel 文件。 我可以手動打開這個 .vbs 文件,它按預期工作,但是我不想在每周一早上 6 點手動打開。 然后我嘗試將它與 Windows 調度程序結合起來,它不會打球(返回啟動/運行失敗)。 經過一番搜索,我看到了一些使用 .bat 文件打開 .vbs 的建議(通過 Windows 調度程序)。 我對 .bat 文件的嘗試如下:

@echo off
Start "" "Q:\Secure\Automation.vbs"

同樣,當我手動運行它時,它會按預期運行。 當我嘗試通過 Windows 調度程序運行它時,它說它已成功運行,調度程序或彈出窗口中都沒有顯示錯誤消息。 這里的問題是 Excel 文件實際上並未更新或保存。 任何人都可以指出我正確的方向嗎? 我認為我的 .vbs 和 .bat 文件都可以,因為它們在手動運行時可以工作,但看起來可能並非如此......

不要使用批處理文件來運行它。 只需使用...

cscript.exe "Q:\Secure\Automation.vbs"

...作為您在任務計划程序中的命令。

Q:是網絡驅動器嗎? 您需要將計划任務設置為使用可以訪問該網絡資源的憑據運行,並在批處理文件中映射驅動器,如下所示:

@ECHO OFF
NET USE Q: \\YourServerName\ShareName
START "" "Q:\Secure\Automation.vbs"

我通常只是寫一個批處理文件來調用文件來運行宏。 我在許多項目中都使用了它,但沒有失敗。 確保在模塊中有宏。 ETA:然后安排批處理文件課程

Dim xlApp
Dim xlWkb
Set xlApp = CreateObject("excel.application")
Set xlWkb = xlApp.Workbooks.Open("PATH TO YOUR FILE")
xlApp.Visible = True
xlWkb.RunAutoMacros 1 'enables macros to be run on open
xlApp.Run ("YOUR PROCEDURE")
xlApp.Workbooks("YOUR WORKBOOK NAME").Save 'Save the workbook
xlApp.Quit 'quits excel

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM