通过R运行.vbs脚本,在任务计划程序中计划

通过R运行.vbs脚本,在任务计划程序中计划,r,vbscript,scheduled-tasks,rscript,R,Vbscript,Scheduled Tasks,Rscript,我有一个VBS脚本,它接受Excel文件并将其保存为PDF格式。我将此vbs称为RScript中的vbs,RScript通过任务调度器自动执行。当我在R中手动运行RScript时,它运行得很好。但是,当我在Task Scheduler中对其进行调度时,任务表示它已成功完成,但PDF文件未保存。运行RScript的任务调度器导致此任务无法实际完成有什么不同 这是RScript,我已将其保存为HourlyR.R,保存在同一个C:\test文件夹中 shell.exec("C:/test/Hourly

我有一个VBS脚本,它接受Excel文件并将其保存为PDF格式。我将此vbs称为RScript中的vbs,RScript通过任务调度器自动执行。当我在R中手动运行RScript时,它运行得很好。但是,当我在Task Scheduler中对其进行调度时,任务表示它已成功完成,但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\u程序\u文件\R-3.2.0\bin\x64\R.exe

添加参数(可选):CMD BATCH C:\test\HourlyR.R

问题可能在Excel中,但最好是一步一步地调试它。首先,在任务的“开始”选项中指定工作目录。然后运行任务,导航到该目录并检查任务执行时是否创建了
.Rout
文件。它可以包含错误和消息。如果R没有生成任何错误,请删除

xlApp.DisplayAlerts = False
xlApp.Visible = False
xlBook.Close
xlApp.Quit

再次运行任务,并检查新的EXCEL.exe进程是否显示在任务管理器中。如果是这样,请在“任务设置”中打开“仅当用户登录时运行”选项,这样您将看到Excel UI及其显示的所有消息。

在“起始位置”中指定了工作目录。创建路由时(无论我是否指定),没有错误。我删除了你建议的行,仍然没有错误。我将任务更改为“仅当用户登录时运行”选项,任务按其应完成的方式完成。所以现在的问题是如何让它使用“用户登录或未登录时运行”选项?请参阅第二个答案谢谢。这似乎奏效了。仅仅添加一个文件夹(C:\Windows\SysWOW64\config\systemprofile\Desktop)就可以解决这个问题。