任务调度程序批处理文件不使用 renv 执行 R 脚本

问题描述 投票:0回答:1

使用 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。

任务调度程序片段:

r windows rstudio taskscheduler renv
1个回答
0
投票

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
的东西的项目,酌情调整。

© www.soinside.com 2019 - 2024. All rights reserved.