0

请帮忙,

我的 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.
4

2 回答 2

0

修改你的saveGSheet.bat如下:

c:\Windows\SysWOW64\cscript saveGSheet.vbs > %temp%\saveGSheet.log 2>&1

执行任务后,检查%temp%\saveGSheet.log中的日志文件内容,这将为您提供进一步调试的线索

于 2016-08-20T02:14:50.300 回答
-1

你没有权利在那里写信。将文件夹更改为您拥有vbscript 的文件夹。

于 2017-02-23T20:54:42.100 回答