使用 Rstudio 创建一个简单的项目并包含 renv。 它只是在项目目录中创建 txt 文件。
创建批处理文件:
CALL "C:\Program Files\R\R-4.3.2\bin\Rscript.exe" -e "renv::load('C:/Users/username/R/ProjectFolder'); source('C:/Users/username/R/Test1/Test1.R')"> "C:/Users/username/R/Test1/Output.log" 2>&1
exit
如果我双击批处理文件 - 效果很好。
但是如果我使用任务调度程序运行批处理文件,则会出现错误:
Error in loadNamespace(x) : there is no package called 'renv'
Calls: loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart
Execution halted
好像没有激活renv。
任务调度程序片段:
renv
功能要求 R 进程在项目目录中启动,调用 Rscript -e /some/path/to/file.R
无法实现这一点。在任务计划程序中,根据 https://serverfault.com/q/609651/316496,作业往往从 %Windir%\System32\
开始,而不是您的项目目录。
修改您的脚本,使其首先更改到适当的目录,然后调用
Rscript
,也许
CD C:\Users\username\R\ProjectFolder
CALL "C:\Program Files\R\R-4.3.2\bin\Rscript.exe" -e "renv::load('C:/Users/username/R/ProjectFolder'); source('C:/Users/username/R/Test1/Test1.R')"> "C:/Users/username/R/Test1/Output.log" 2>&1
exit
(我不确定
R\ProjectFolder\
还是R\Test1\
是带有.Rprofile
和renv
的东西的项目,酌情调整。