运行 通过 R 的 .vbs 脚本,在任务计划程序中计划
Running a .vbs script through R, scheduled in Task Scheduler
我有一个 VBS 脚本,它接受一个 Excel 文件并将其保存为 PDF。我将此 vbs 称为在通过任务计划程序自动执行的 RScript 中。当我在 R 中手动 运行 时,RScript 运行 就很好了。但是,当我在 Task Scheduler 中安排它时,任务说它成功完成,但 PDF 文件没有保存。 Task Scheduler 运行使 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
这是我设置计划任务的方式:
常规选项卡:
运行是否选择用户登录
运行 勾选了最高权限
操作选项卡:
Program/Script: C:\R_Program_Files\R-3.2.0\bin\x64\R.exe
添加参数(可选):CMD BATCH C:\test\HourlyR.R
问题可能出在Excel,但最好的办法是逐步调试。首先,在任务的 "Start in" 选项中指定工作目录。然后 运行 任务,导航到该目录并检查执行任务时是否创建了 .Rout
文件。它可以包含错误和消息。如果 R 没有产生任何错误,删除
xlApp.DisplayAlerts = False
xlApp.Visible = False
xlBook.Close
xlApp.Quit
运行任务,查看任务管理器中是否出现新的EXCEL.exe进程。如果是这样,请在任务设置中打开 "Run only when user is logged on" 选项,这样您应该会看到 Excel UI 及其显示的任何消息。
我有一个 VBS 脚本,它接受一个 Excel 文件并将其保存为 PDF。我将此 vbs 称为在通过任务计划程序自动执行的 RScript 中。当我在 R 中手动 运行 时,RScript 运行 就很好了。但是,当我在 Task Scheduler 中安排它时,任务说它成功完成,但 PDF 文件没有保存。 Task Scheduler 运行使 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
这是我设置计划任务的方式:
常规选项卡:
运行是否选择用户登录
运行 勾选了最高权限
操作选项卡:
Program/Script: C:\R_Program_Files\R-3.2.0\bin\x64\R.exe
添加参数(可选):CMD BATCH C:\test\HourlyR.R
问题可能出在Excel,但最好的办法是逐步调试。首先,在任务的 "Start in" 选项中指定工作目录。然后 运行 任务,导航到该目录并检查执行任务时是否创建了 .Rout
文件。它可以包含错误和消息。如果 R 没有产生任何错误,删除
xlApp.DisplayAlerts = False
xlApp.Visible = False
xlBook.Close
xlApp.Quit
运行任务,查看任务管理器中是否出现新的EXCEL.exe进程。如果是这样,请在任务设置中打开 "Run only when user is logged on" 选项,这样您应该会看到 Excel UI 及其显示的任何消息。