从文件整理的噩梦中醒来
B2B 业务运作时,每天数十份订单、运单、合约源源不绝地涌入谷歌云端硬盘。「2024-01-15-Buyer-A-PO.pdf」「Invoice-001-Jan.xlsx」这类文件杂乱堆积。身为非开发者的我,每周都要牺牲午餐时间,将这些文件按日期、客户分门别类地搬到文件夹里。既乏味又容易出错。
某天我意识到,通过 Claude Code 和 Google Apps Script 结合,能将整个过程自动化。
运作原理是什么?
读取文件名中的规律,按规则自动移动到文件夹。
假设有以下命名规则:
• 「YYYYMMDD-BuyerName-DocumentType.pdf」
• 例如:「20240115-BuyerA-PO.pdf」
我们打造的自动化会检测并分类:
Drive Root
└─ 2024年1月
└─ BuyerA
└─ PO (文件夹)
└─ 20240115-BuyerA-PO.pdf
逐步建构指南
步骤 1:在谷歌云端硬盘中开启 Apps Script 项目
1. 进入谷歌云端硬盘,点击「新建」
2. 「更多」 → 「Google Apps Script」
3. 将新项目命名为「FileAutoSorter」
步骤 2:在 Claude Code 中生成脚本
向 Claude 提出以下要求:
「建立一个 Google Apps Script,能读取谷歌云端硬盘特定文件夹内所有文件,依据 YYYYMMDD-BuyerName-DocType 命名模式分析,自动将文件移动到年份/月份/客户名称/文件类型的文件夹结构中。不存在的文件夹须自动建立,已移动的文件不应重复移动。」
Claude 生成的程序代码结构大致如下:
function autoSortFiles() {
const sourceFolder = DriveApp.getFolderById(「YOUR_FOLDER_ID」);
const files = sourceFolder.getFiles();
while(files.hasNext()) {
const file = files.next();
const fileName = file.getName();
const pattern = /^(\d{8})-(\w+)-(\w+)\./;
const match = fileName.match(pattern);
if(match) {
const date = match[1];
const buyer = match[2];
const docType = match[3];
const year = date.substring(0, 4);
const month = date.substring(4, 6);
// 文件夹建立及文件移动逻辑
createAndMoveFile(sourceFolder, file, year, month, buyer, docType);
}
}
}
步骤 3:粘贴程序代码并设定文件夹 ID
1. 将生成的程序代码粘入 Apps Script 编辑器
2. 从目标文件夹 URL 提取文件夹 ID:「https://drive.google.com/drive/folders/`1a2b3c4d5e6f`」
3. 将文件夹 ID 填入程序代码的「YOUR_FOLDER_ID」位置
步骤 4:首次执行、授权及测试
1. 点击「执行」按钮
2. 谷歌账户认证弹窗 → 授予权限
3. 先在小测试文件夹(5~10 个文件)上执行
4. 确认文件是否进入正确文件夹
步骤 5:设定自动执行排程(选项)
如欲每日特定时间自动分类:
1. 「触发条件」 → 「建立新触发条件」
2. 函数:autoSortFiles,部署:Head,事件类型:时间型
3. 选择「日期时间排程」 → 指定时间(例:上午9点)
实际发生的事
成功: 首次自动化后,每周节省 1 小时 30 分钟。人为错误(文件重复置放、文件夹选择错误)降至近乎零。
失败: 初期文件名规则不够严格,模式匹配只有 40% 成功率。与业务团队制定文件名标准后,达到 100% 自动化。
意外: 同事看到成效后问「这个我也能用吗?」 才明白规范文件名的自动化脚本能到处复用。
进一步应用
向 Claude 提出以下进阶要求:
• 将文件移动日志自动记录到谷歌表格
• 移动完成后传送电子邮件通知给负责人
• 规则不符的文件分离到「人工审查」文件夹
所有功能都能整合在单一脚本中。
结语
文件整理这类重复工作最适合作为自动化的起点。非开发者只要理解规律、与 Claude 对话,就能实现。下周一,你的谷歌云端硬盘也能如此井然有序。