通过 R 运行 .vbs 脚本,在任务计划程序中安排
Posted
技术标签:
【中文标题】通过 R 运行 .vbs 脚本,在任务计划程序中安排【英文标题】:Running a .vbs script through R, scheduled in Task Scheduler 【发布时间】:2015-10-02 12:22:27 【问题描述】:我有一个 VBS 脚本,它获取一个 Excel 文件并将其保存为 PDF。我将此 vbs 称为在通过任务计划程序自动化的 RScript 中。当我在 R 中手动运行 RScript 时,它运行得很好。但是,当我在任务计划程序中安排它时,任务说它成功完成,但没有保存 PDF 文件。运行 RScript 的任务计划程序导致这实际上没有完成有什么不同?
这是 RScript,我已将其作为 HourlyR.R 保存在同一个 C:\test 文件夹中。
shell.exec("C:/test/HourlyNew.vbs")
这是 HourlyNew.vbs 的代码
Option Explicit
ExcelMacro
Sub ExcelMacro()
Dim xlApp
Dim xlBook
Dim xlSheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\\test\\Hourly.xlsm", 0, False)
Set xlSheet = xlBook.Worksheets("HourlyDashboard")
xlApp.DisplayAlerts = False
xlApp.Visible = False
xlSheet.ExportAsFixedFormat 0, "c:\\test\\HourlyDashboard.pdf", 0, 1, 0, , , 0
xlBook.Close
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
这是我设置计划任务的方式:
常规标签: 无论用户是否登录都运行 以最高权限运行
操作选项卡: 程序/脚本:C:\R_Program_Files\R-3.2.0\bin\x64\R.exe 添加参数(可选):CMD BATCH C:\test\HourlyR.R
【问题讨论】:
http://blogs.technet.com/b/askperf/archive/2015/02/18/help-my-scheduled-task-does-not-run.aspx 【参考方案1】:问题可能出在 Excel 中,但最好的办法是逐步调试它。首先,在任务的“开始于”选项中指定工作目录。然后运行任务,导航到该目录并检查在执行任务时是否创建了.Rout
文件。它可以包含错误和消息。如果 R 没有产生任何错误,删除
xlApp.DisplayAlerts = False
xlApp.Visible = False
xlBook.Close
xlApp.Quit
再次运行任务,查看任务管理器中是否出现新的EXCEL.exe进程。如果是这样,请在任务设置中打开“仅在用户登录时运行”选项,这样您应该会看到 Excel UI 及其显示的任何消息。
【讨论】:
在“Start in”中指定的工作目录,.Rout 被创建(无论我是否指定)没有错误。我删除了您建议的行,仍然没有错误。我将任务更改为“仅在用户登录时运行”选项,任务按原样完成。所以现在的问题是如何让它与“用户登录时运行”选项一起工作? 见第二个回答here 谢谢。它似乎奏效了。简直太疯狂了,只添加一个文件夹 (C:\Windows\SysWOW64\config\systemprofile\Desktop) 就能解决这个问题。以上是关于通过 R 运行 .vbs 脚本,在任务计划程序中安排的主要内容,如果未能解决你的问题,请参考以下文章
WIN7 64位系统任务计划程序里运行VBS脚本 报错,脚本本身没问题!请问怎么解决?