基于现有脚本修改:用Google Apps Script按文件名常量移动Drive文件
按文件名筛选并移动Google Drive文件的脚本修改方案
针对需求,我对现有脚本做了核心修改——添加文件名筛选逻辑、将复制操作改为移动操作,同时保留无重复校验逻辑。修改后的完整脚本如下:
function MoveFilteredFiles() { // 替换为你的源文件夹ID和目标文件夹ID var srcFldr = DriveApp.getFolderById("***源文件夹ID***"); var desFldr = DriveApp.getFolderById("***目标文件夹ID***"); var srcFiles = srcFldr.getFiles(); var key = "movedFileIDs"; var scriptProperties = PropertiesService.getScriptProperties(); var property = scriptProperties.getProperty(key); // 已移动文件ID数组,无记录则为空数组 var movedIDs = property ? JSON.parse(property) : []; // 遍历源文件夹所有文件 while (srcFiles.hasNext()) { var sf = srcFiles.next(); var fileName = sf.getName(); // 核心筛选条件:文件名包含"FLRT",且未被移动过 if (fileName.includes("FLRT") && movedIDs.indexOf(sf.getId()) === -1) { // 执行移动操作:直接将文件转移到目标文件夹 sf.moveTo(desFldr); // 记录已移动的文件ID,避免重复操作 movedIDs.push(sf.getId()); } } // 更新存储的已移动文件ID列表 scriptProperties.setProperty(key, JSON.stringify(movedIDs)); }
关键修改说明
- 文件名筛选逻辑:新增
fileName.includes("FLRT")判断,仅处理文件名包含指定常量的文件。若需严格区分大小写,可改用正则校验:/FLRT/.test(fileName)。 - 从复制改为移动:将原脚本的
makeCopy替换为moveTo方法,直接转移文件而非复制,避免占用额外存储空间。 - 简化去重复逻辑:移除原脚本中读取目标文件夹文件名的冗余逻辑,直接通过存储的文件ID判断是否已处理,避免重名文件误判,提升准确性。
- 可读性优化:调整函数名和变量名,贴合移动操作的业务场景,降低代码维护成本。
内容的提问来源于stack exchange,提问作者Joshua Lim
相关产品推荐
相关产品推荐

