Google Apps 脚本根据文件名将我的驱动器文件移动到团队驱动器文件夹

Posted

技术标签:

【中文标题】Google Apps 脚本根据文件名将我的驱动器文件移动到团队驱动器文件夹【英文标题】:Google Apps script move My drive Files to Team drive folder based on file name 【发布时间】:2019-10-16 13:31:06 【问题描述】:

我是 Google Apps 脚本的新手。我正在尝试为我们的工作场所获取一个脚本,以将文件从 Google 我的云端硬盘上的单个文件夹移动到团队云端硬盘(如果文件名的一部分具有特定短语)。但是,该脚本仍在将所有文件从“我的云端硬盘”源文件夹移动到“团队云端硬盘”目标文件夹,即使是那些文件名中没有“必需”短语的文件。 使用的示例文件名:

ALT ADJ 01_03_2018

ALT CHG 01_03_2018

ALT CHG 01_04_2018

ALT PMT 01_03_2018

APX 调整 01_03_2018

在资源下的高级 Google 服务中启用 Drive API v2

function moveFileToFolder()  
  var upldFldr=DriveApp.getFolderById('<<original Folder ID>>');
  var files=upldFldr.getFiles();
  supportsTeamDrives: true;
  while(files.hasNext()) 
    var file=files.next();
    var key=file.getName().slice(0,7);  //intended to take the first 7 characters of the filename.
      if (key = "ALT CHG") 
        supportsTeamDrives: true;
        supportTeamDrives: true;
        var targetFolder = DriveApp.getFolderById('<<new folder ID>>');
        targetFolder.addFile(file);
      ;
  

在代码中,我试图仅将文件名中包含 ALT CHG 前 7 个字母的文件移动/复制到 Team Drive 文件夹。相反,所有文件最终都在 Team Drive 文件夹中。请注意,这是从头到尾的整个代码。

【问题讨论】:

【参考方案1】:

变化:

if (key = "ALT CHG") 

if (key == "ALT CHG") 

这应该可以解决问题,即使用 == 而不是 =

【讨论】:

谢谢。我有一种感觉,这将是一个简单的修复。现在完美运行。

以上是关于Google Apps 脚本根据文件名将我的驱动器文件移动到团队驱动器文件夹的主要内容,如果未能解决你的问题,请参考以下文章

用于将 google drive 中的文件名列表与 google sheet 列中的名称列表进行比较的 Apps 脚本,以将新文件从驱动器添加到工作表

如何下载以前保存的Google Apps脚本修订版?

Google Apps 脚本按钮:我可以分配一个未附加到工作表的“全局”脚本吗?

如何重新启动失败的 Google Apps 脚本触发器?

从 Google Apps 脚本访问 GoogleSheet 链接的 BigQuery 表时出现“获取驱动器凭据时权限被拒绝”错误

使用 HtmlService 使用 Google Apps 脚本上传文件