Answers:
实际上,在Windows下,您甚至不必先创建批处理文件即可使用Scheduler。
假设您的R脚本mytest.r
位于中的D:\mydocuments\
,您可以创建一个包含以下命令的批处理文件:
C:\R\R-2.10.1\bin\Rcmd.exe BATCH D:\mydocuments\mytest.r
然后将其作为新任务添加到Windows任务计划程序中,在此处设置触发条件。
您也可以省略批处理文件。在任务计划程序C:\R\R-2.10.1\bin\Rcmd.exe
的program/script
文本框中设置,并提供Arguments
其余的初始命令:BATCH D:\mydocuments\mytest.r
通过Windows Task Scheduler调度R任务(发布于2015年2月11日)
taskcheduleR:R包,用于通过Windows任务管理器计划R脚本(发布于2016年3月17日)
编辑
我最近再次采用了批处理文件,因为我希望将cmd窗口最小化(我找不到其他方法)。
具体来说,我Actions
按如下所示填充Windows Task Scheduler 选项卡:
Program/script:
命令文件
Add arguments (optional):
/ c开始/ min D:\ mydocuments \ mytest.bat ^&退出
mytest.bat的内容:
C:\ R \ R-3.5.2 \ bin \ x64 \ Rscript.exe D:\ mydocuments \ mytest.r参数
Rscript
优于R BATCH
。可以区分大小写的系统也会得到r
。
现在,RStudio中有一个内置选项可以执行此操作,以在程序包下面首先运行调度程序
install.packages('data.table')
install.packages('knitr')
install.packages('miniUI')
install.packages('shiny')
install.packages("taskscheduleR", repos = "http://www.datatailor.be/rcube", type =
"source")
安装后转到
**TOOLS -> ADDINS ->BROWSE ADDINS ->taskscheduleR -> Select it and execute it.**
我通过SCHTASKS
程序设置了任务。对于启动时运行的脚本,您可以按照以下方式编写:
SCHTASKS /Create /SC ONSTART /TN MyProgram /TR "R CMD BATCH --vanilla d:\path\to\script.R"
有关更多详细信息,请参见此网站SCHTASKS
。有关更多详细信息,请访问Microsoft网站。
您可以使用Windows Task Scheduler。
设置任务计划程序
步骤1)打开任务计划程序(开始>搜索任务计划程序)
步骤2)点击“操作”>“创建任务”
步骤3)选择“仅在用户登录时运行”,取消选中“以最高权限运行”,为您的任务命名,配置为“ Windows Vista / Windows Server 2008”
步骤4)在“触发器”标签下,设置您希望脚本运行的时间
步骤5)在“操作”标签下,放置Rscript.exe文件的完整位置,即
"C:\Program Files\R\R-3.6.2\bin\Rscript.exe" (include the quotes)
使用with -e
和source()
in来包装脚本名称,如下所示:
-e "source('C:/location_of_my_script/test.R')"
对任务计划程序中计划的Rscript进行故障排除
使用任务计划程序运行脚本时,很难解决任何问题,因为您不会收到任何错误消息。
这可以通过使用sink()
R中的函数来解决,该函数将允许您将所有错误消息输出到您指定的文件中。这是您可以执行的操作:
# Set up error log ------------------------------------------------------------
error_log <- file("C:/location_of_my_script/error_log.Rout", open="wt")
sink(error_log, type="message")
try({
# insert your code here
})
为了使Rscript正常工作,您还需要更改的另一件事是在脚本中指定所有文件路径的完整文件路径。
这在任务计划程序中将不起作用:
source("./functions/import_function.R")
您将需要指定要在Rscript中采购的所有脚本的完整文件路径:
source("C:/location_of_my_script/functions/import_function.R")
.R
and NOT.r
。