是否有可能将执行的行或基本上的脚本复制到工作目录中?
所以我的正常情况是,我有一个独立的脚本,只需要在工作目录中获取,他们将完成我需要的一切。 几个月后,我对这些脚本进行了更新,我很乐意在执行源代码时从脚本中获取快照......
所以基本上file.copy(ITSELF, '.')
或类似的东西。
答案 0 :(得分:0)
我只是想添加我的解决方案,因为我决定在执行复制命令之前使用try
函数...因为我感觉我错过了一些控制...
try({
script_name <- sys.frame(1)$ofile
copy_script_name <-
paste0(sub('\\.R', '', basename(script_name)),
'_',
format(Sys.time(), '%Y%m%d%H%M%S'),
'.R')
file.copy(script_name,
copy_script_name)
})
这会将脚本复制到当前目录中,并为文件名添加时间戳。如果出现问题,脚本的其余部分仍将执行。
答案 1 :(得分:0)
我最初发布了该其他主题,并且认为它可以解决您的问题:https://stackoverflow.com/a/62781925/9076267
就我而言,我需要一种复制执行文件的方法来备份原始> script及其输出。这在研究中相对重要。 在命令行上运行脚本时,对我有用的是这里介绍的其他解决方案的组合,如下所示:
library(scriptName)
file_dir <- paste0(gsub("\\", "/", fileSnapshot()$path, fixed=TRUE))
file.copy(from = file.path(file_dir, scriptName::current_filename()) ,
to = file.path(getwd(), scriptName::current_filename()))
或者,可以在文件名中添加日期和我们的名称,以帮助将文件与源文件区别开,如下所示:
file.copy(from = file.path(current_dir, current_filename()) ,
to = file.path(getwd(), subDir, paste0(current_filename(),"_", Sys.time(), ".R")))