基于AppScript实现Google Drive文件按文件名关键词自动归类
解决方案:按文件名关键词自动归类Google Docs到对应文件夹
假设你原脚本已经实现了从表单响应生成Docs并保存到指定根文件夹的逻辑,以下是添加自动归类功能的完整修改方案:
// 原有的全局配置(替换成你的实际ID) var templateFile = DriveApp.getFileById("你的模板文件ID"); var templateResponseFolder = DriveApp.getFolderById("你的根文件夹ID"); // 自定义关键词列表,按需添加/修改 var KEYWORDS = ["Gryffindor", "Hufflepuff", "Ravenclaw", "Slytherin"]; // 核心:根据文件名关键词移动文件到对应文件夹 function moveFileToKeywordFolder(file) { var fileName = file.getName(); var targetFolder = null; // 遍历关键词,匹配文件名 for (var i = 0; i < KEYWORDS.length; i++) { var keyword = KEYWORDS[i]; // 若需要不区分大小写,可改成 fileName.toLowerCase().includes(keyword.toLowerCase()) if (fileName.includes(keyword)) { // 检查根文件夹下是否已有同名子文件夹 var existingFolders = templateResponseFolder.getFoldersByName(keyword); targetFolder = existingFolders.hasNext() ? existingFolders.next() : templateResponseFolder.createFolder(keyword); // 移动文件到目标文件夹 file.moveTo(targetFolder); // 找到匹配项后停止遍历 break; } } } // 你的表单提交处理函数(示例) function onFormSubmit(e) { // 复制模板生成新文档 var newDoc = templateFile.makeCopy(); var doc = DocumentApp.openById(newDoc.getId()); var body = doc.getBody(); // --- 这里保留你原有的数据填充逻辑 --- // 例如:body.replaceText("{{姓名}}", e.response.getResponseForItem(0).getResponse()); // ... 其他文本替换操作 // 保存并关闭文档 doc.saveAndClose(); // 调用归类函数,完成自动移动 moveFileToKeywordFolder(newDoc); }
关键说明
- 关键词配置:修改
KEYWORDS数组,添加所有需要匹配的分类关键词,比如新增其他学院名称直接加在数组里即可。 - 文件夹处理:脚本会自动检查根文件夹下是否存在与关键词同名的子文件夹,不存在则自动创建。
- 大小写适配:如果需要忽略文件名和关键词的大小写差异,把
fileName.includes(keyword)替换成fileName.toLowerCase().includes(keyword.toLowerCase())。 - 权限注意:第一次运行脚本时需要授权Drive的读写权限,直接按提示完成授权即可。
内容的提问来源于stack exchange,提问作者Gandy Des Ardy
相关产品推荐
相关产品推荐

