google 应用程序脚本。将文件复制到一个驱动器

google apps script. copy files to one drive

我会将文件存储在 google 驱动器中,并且我想将这些文件复制(或移动)到我的 OneDrive。我已经成功地将 OneDrive 连接到 google 驱动器,我可以成功地创建文件夹并通过文件 ID 上传文件。我正在尝试一次将多个文件从 google 驱动器复制(或移动)到 OneDrive,但还没有任何运气。我不擅长编程,只能通过教程完成所有工作,但找不到任何有效的方法。也许有人可以指导我如何去做?对于最终的想法,我想实现 google 驱动器中的文件甚至可以根据文件标题的一部分(名称和姓氏,如果准确的话)复制到单独的文件夹中。目前我已经“开发”了这样的脚本:

function moveFiles(source, dest_folder) {
  var source = DriveApp.getFolderById("1faFbaXJNziwIGyer2H2IPALQ8ahBfGMc");
  var prop = PropertiesService.getScriptProperties();
  var odapp = OnedriveApp.init(prop);
  var files = DriveApp.getFiles();

  while (files.hasNext()) {
    var file = files.next();  
    var dest_folder = 
    OnedriveApp.init(PropertiesService.getScriptProperties()).uploadFile(files, 
    "/samplefolder");
  }
}

我相信你的现状和目标如下。

  • 您正在使用 OnedriveApp
  • 您已经完成了授权过程。因此,您已经在 PropertiesServices 中获得了访问令牌和刷新令牌。
  • 您想将 Google 驱动器特定文件夹中的文件上传到 OneDrive 中的特定文件夹。
  • 文件数量为 10 - 20。
  • 文件较小。

来自您的以下回复

I have changed accordingly to: var files = file.getId(); but then I receive such error: TypeError: Cannot read property 'getId' of undefined moveFiles @ srcpt.gs:5 If I use DriveApp.getFiles() or source.getFiles(), I receive such error: Exception: Unexpected error while getting the method or property getFileById on object DriveApp. convToMicrosoft @ code.gs:629 OnedriveApp.uploadFile @ code.gs:460 Appreciated for any help.

  • 关于var files = file.getId();If I use DriveApp.getFiles() or source.getFiles(), I receive such error:,很遗憾,我看不懂。

这样的话,下面的修改怎么样?

修改后的脚本:

function myFunction() {
  var prop = PropertiesService.getScriptProperties();
  var odapp = OnedriveApp.init(prop);

  var source = DriveApp.getFolderById("###"); // Please put your folder ID.
  var files = source.getFiles();
  while (files.hasNext()) {
    var file = files.next();
    odapp.uploadFile(file.getId(), "/samplefolder/"); // Please set the destination folder name. In this case, the folder name in OneDrive.
  }
}
  • 使用"/samplefolder"时会出错。请用 / 将文件夹名称括起来,例如 "/samplefolder/"。请注意这一点。

  • 当此脚本为运行时,将Google驱动器特定文件夹中的文件复制到OneDrive中/samplefolder/的目标文件夹。

参考文献: