请帮忙,
我的 vbscript:saveGSheet.vbs(下载工作表)在手动运行时工作正常。我想自动执行此操作,但自动任务不会下载文件。
如何在任务计划程序中运行它?在 Windows Server 2008 上。
任务计划程序 - 设置:
- 行动:运行程序:saveGSheet.bat,代码:
c:\Windows\SysWOW64\cscript saveGSheet.vbs
- 作为本地服务运行任务
- 未登录时运行任务
已经试过了:
- 以最高权限运行无济于事
- 创建“桌面”文件夹无济于事
- “作为批处理作业登录”没有帮助
可能的原因:
未登录意味着对象无法正常工作 - 可能需要在 MS Excel 等交互模式下运行?我不明白我的脚本中的哪些内容需要交互式运行(登录)?
- “MSXML2.XMLHTTP.3.0”
- “ADODB.Stream”
脚本:
' Set your settings
strFileURL = "https://docs.google.com/spreadsheets/d/1B5jBWGHT1dGKCwE9KLTlFsyymNCc1s4AH1LcFQOcwqQ/export?format=xlsx"
strHDLocation = "C:\file.xlsx"
' Fetch the file
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP.3.0")
objXMLHTTP.open "GET", strFileURL, false
objXMLHTTP.send()
'Response 200 is OK, now download sheet
If objXMLHTTP.Status = 200 Then
Set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1 'adTypeBinary
objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.Position = 0 'Set the stream position to the start
objADOStream.SaveToFile strHDLocation
objADOStream.Close
Set objADOStream = Nothing
End if
注意:我不应该使用任何第三方应用程序,所以我不使用 wget 例如。
编辑:按照建议制作日志文件,结果:
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
C:\AppBackUpTools\ALM\NotifikaceVSE\SLA_Escalation\download_excel\saveGSheet.vbs(27, 3) ADODB.Stream: Write to file failed.