Jam*_*ler 5 r batch-file quarto
这有点复杂,但我认为其他人也可能遇到这个问题。
\nQuarto 很棒,但遇到了一个问题,即一个函数 ( quarto_render
) 无法在通过 .bat / .cmd 文件访问的脚本中呈现文档。如果我从 RStudio IDE 运行 R 脚本,没有问题,但通过 .bat 访问,是的。已经能够重现该问题,我将尝试概述该问题并希望有人能够提供解决方法。
不幸的是,重新创建需要一些时间,因为需要三个文件(我正在处理的实际项目使用五个单独的文件)。我正在使用的源项目文件夹名为 Test,直到文件 3 为止它才真正发挥作用。
\n文件 1 - test_document.qmd
\n创建一个新的 .qmd 文档(我称之为我的test_document.qmd
)。设置为 html 输出,并保留默认的 YAML 和其他文本。无需修改。
文件 2 - test_script.R
\n创建一个新脚本 ( test_script.R
)。通过以下方式...
library(quarto)\nlibrary(here)\n\nquarto_render(here("test_document.qmd"))\n
Run Code Online (Sandbox Code Playgroud)\n运行时,这应该将 Test_document.qmd 呈现为文件位置中的单独 html 文件。
\n文件 3 - test.cmd - (这是开始出现问题的地方)
\n当扩展名更改为 .bat 时,文本文件 (.txt) 应在命令提示符中呈现。.cmd 文件中使用的代码附在下面,但必须编辑部分,因为它是基于工作的。
\n文件夹开始位置为“C:\\Temp\\Test”
\n{.cmd file}\ncd /d %~dp0 \nif exist .\\test_document.qmd "C:\\Program Files\\R\\R-4.2.1\\bin\\x64\\Rscript.exe" "C:\\Temp\\Test\\test_script.R"\nPAUSE\n
Run Code Online (Sandbox Code Playgroud)\n为了方便起见,将该文件保存到与其他两个文件相同的文件夹中。现在,当运行 test.cmd 文件(通过双击运行)时,命令提示符界面中会发生以下情况...
\n输出
\n{command prompt}\n\nC:\\Temp\\Test>cd /d C:\\Temp\\Test\\\n\nC:\\Temp\\Test>if exist .\\test_document.qmd "C:\\Program Files\\R\\R-4.2.1\\bin\\x64\\Rscript.exe" "C:\\Temp\\Test\\test_script.R"\nhere() starts at C:/Temp/Test\nError in find_quarto() : Unable to find quarto command line tools.\nCalls: quarto_render -> find_quarto\nExecution halted\n\nC:\\Temp\\Test>PAUSE\n
Run Code Online (Sandbox Code Playgroud)\nfind_quarto 没有在 quarto 包中定义,尽管它确实出现在这里......
\nhttps://rdrr.io/github/quarto-dev/quarto-r/src/R/quarto.R
\n这是我所能得到的。我想使用 .bat 文件,因为计划将该文件绑定到任务计划程序,以便安排我正在处理的实际项目每周运行一次左右。
\nSession_info 如果这有帮助......
\n> devtools::session_info()\n\xe2\x94\x80 Session info \xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n setting value\n version R version 4.2.1 (2022-06-23 ucrt)\n os Windows 10 x64 (build 19042)\n system x86_64, mingw32\n ui RStudio\n language (EN)\n collate English_United States.utf8\n ctype English_United States.utf8\n tz America/New_York\n date 2022-08-29\n rstudio 2022.07.0+548 Spotted Wakerobin (desktop)\n pandoc 2.18 @ C:/Program Files/RStudio/bin/quarto/bin/tools/ (via rmarkdown)\n
Run Code Online (Sandbox Code Playgroud)\n在批处理之外运行脚本
\n打开 RStudio IDE >
\n打开 test_script.R 文件 >
\n将光标放在脚本中选择 cntrl + alt + R 运行
\n小智 3
要保存两个文件,您可以执行以下操作:
library(quarto)
library(here)
# quarto_render(here("test_document.qmd"))
system(paste0('quarto.cmd render ', here("test_document.qmd")))
Run Code Online (Sandbox Code Playgroud)
如果 quarto.cmd 不在您的路径中,您可能需要
system(paste0('"D:/Program Files/RStudio/bin/quarto/bin/quarto.cmd" render ', here::here("test_document.qmd")))
Run Code Online (Sandbox Code Playgroud)