Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 如何根据部分文件名使用Google脚本自动移动Google Drive中的文件?_File_Google Apps Script_Move_Google Drive Shared Drive - Fatal编程技术网

File 如何根据部分文件名使用Google脚本自动移动Google Drive中的文件?

File 如何根据部分文件名使用Google脚本自动移动Google Drive中的文件?,file,google-apps-script,move,google-drive-shared-drive,File,Google Apps Script,Move,Google Drive Shared Drive,我不太熟悉谷歌脚本。我们希望所有上传到Google Drive中单个文件夹的文件都能根据其部分文件名自动移动到其他文件夹。 3个示例文件:APX PMT 05.02.2019、ALT PMT 05.03.2019、BEA PMT 05.04.2019 我们希望根据文件名的前3个字母将这些文件移动到其目标文件夹。APX PMT 05.02.2019移动到APX文件夹,ALT PMT 05.03.2019移动到ALT文件夹,等等 没有代码示例,因为我对此非常陌生。这对我来说是一个很好的开始,但仍然不

我不太熟悉谷歌脚本。我们希望所有上传到Google Drive中单个文件夹的文件都能根据其部分文件名自动移动到其他文件夹。 3个示例文件:APX PMT 05.02.2019、ALT PMT 05.03.2019、BEA PMT 05.04.2019 我们希望根据文件名的前3个字母将这些文件移动到其目标文件夹。APX PMT 05.02.2019移动到APX文件夹,ALT PMT 05.03.2019移动到ALT文件夹,等等

没有代码示例,因为我对此非常陌生。这对我来说是一个很好的开始,但仍然不确定如何使它仅基于文件名的一部分移动文件

结果:希望人们能够将文件上传到一个单一的目的地,代码会自动将其移动到适当的文件夹中

测试代码版本2.0。如果我删除两个字符集之间的空格(将BEA RFT更改为BEARFT或BEA_RFT),则其工作原理如下,因为我们的工作场所希望它们现在按文件名中的前7个字符排序。当字符中有空格时,如何使其工作

function moveFiles() {
  var dfldrs=['BEA RFT', 'BEA ADJ', 'BEA PMT', 'BEA CHG'];//Seven letter prefixes
  var ofObj={BEA RFT:'ID',BEA ADJ:'ID',BEA PMT:'ID',BEA CHG:'ID'};//distribution folder ids
  var upldFldr=DriveApp.getFolderById('ID');
  var files=upldFldr.getFiles();
  while(files.hasNext()) {
    var file=files.next();
    var key=file.getName().slice(0,7);
    var index=dfldrs.indexOf(key);
    if(index>-1) {
      Drive.Files.update({"parents": [{'id': ofObj[key]}]}, file.getId());  
    }
  }
}

移动文件

请在运行脚本之前阅读这些说明

  • 您需要提供三个字母前缀
  • 您需要提供与每个前缀关联的分发文件夹ID
  • 您需要提供上载文件夹id
  • 您需要从上载文件脚本运行此程序,或者根据需要提供备用触发器功能
  • 您需要启用Advanced Drive API版本2
  • 代码

    function moveFiles() {
      var dfldrs=['APX','ALT','BEA'];//Three letter prefixes
      var ofObj={APX:'APX id',ALT:'ALT id',BEA:'BEA id'};//distribution folder ids
      var upldFldr=DriveApp.getFolderById('folderid');
      var files=upldFldr.getFiles();
      while(files.hasNext()) {
        var file=files.next();
        var key=file.getName().slice(0,3);
        var index=dfldrs.indexOf(key);
        if(index>-1) {
          Drive.Files.update({"parents": [{"id": ofObj[key]}]}, file.getId());  
        }
      }
    }
    

    请分享您的上传代码。在属性名
    var ofObj={'BEA RFT':'ID','BEA ADJ':'ID','BEA PMT':'ID','BEA CHG':'ID')周围加引号//分发文件夹ID
    谢谢。这是完美的工作。我唯一剩下的问题是,当目标文件夹名称中有空格时,是否有方法使其排序?参见上面的代码版本2。