复制文件时携带文件路径批处理_R语言文件批处理:批量复制粘贴文件

作者:黄天元,复旦大学博士在读,热爱数据科学与R,热衷推广R在工业界与学术界的应用。邮箱:huang.tian-yuan@qq.com.欢迎合作交流

任务需求:我现在有一个文件夹,文件夹有很多子文件夹。每个子文件夹里面都有一个pdf文件,我需要把这些pdf全部提取出来放在一个文件夹里面。

98d30682386ad09d6cd65564339ac39f.png
临时文件夹展示

为了完成这个任务,我用了R基本包的批处理函数。

首先,把这些文件的所在路径进行复制,然后运行下面的代码:

#请先把下面的步骤写好,然后复制之后直接运行。
#不要复制了路径又复制下面的代码,最后复制到剪贴板的一定是文件的路径。

FSlash<- function(path = "clipboard") {
  y <- if (path == "clipboard") {
    readClipboard()
  } else {
    cat("Please enter the path:nn")
    readline()
  }
  x <- chartr("", "/", y)
  writeClipboard(x)
  return(x)
}

FSlash() -> NEED

这样,我刚才复制的路径就到了NEED变量里面。每次都被windows的反斜杠问题麻烦到,终于在https://www.listendata.com/2015/06/convert-backslash-file-path-to-forward.html中找到了解决方案。

然后我想要把这些pdf文件都放到G盘下的temp_pdf文件夹中,我先创建,然后利用循环批量转移。

#读取文件夹名称
dir(NEED) -> folder_names

#创建文件夹
dir.create("G:/temp_pdf")

#利用file.copy函数批量复制粘贴到指定文件夹中
for(i in folder_names){
  dir(paste0(NEED,"/",i)) -> folder_files
  if(length(folder_files) == 1) file.copy(from = paste0(NEED,"/",i,"/",folder_files),
                                          to = paste0("G:/temp_pdf/",folder_files))
}

成功完成批处理!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值