You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Drive脚本修改需求:按文件名起始日期删除旧文件

修改Google Apps Script脚本:按文件名起始日期删除文件

没问题,我帮你调整脚本逻辑,核心就是从文件名里解析出起始日期,再和当前日期做对比。你的文件名格式是YYYY/MM/DD ...,刚好可以提取前10位来处理,下面是具体修改点和完整脚本:

需要修改的核心内容

  • 移除原来基于文件修改时间的判断逻辑,换成解析文件名开头的日期字符串
  • 将当前日期的时间部分清零(只保留年月日),避免因为时间差误删当天的文件
  • 保留你原来的文件所有者校验逻辑,确保只删指定邮箱的文件

修改后的完整脚本

// 解析文件名开头的日期,判断是否早于当前日期
function getOldFileIDs() {
  // 获取当前日期,并且把时间部分设为00:00:00,只保留年月日
  const today = new Date();
  today.setHours(0, 0, 0, 0);
  
  // 替换成你的目标文件夹ID
  const folder = DriveApp.getFolderById('XXXXXXXXXXXXXXXXXXXXX');
  const files = folder.getFiles();
  const obj = [];
  
  while (files.hasNext()) {
    const file = files.next();
    const fileName = file.getName();
    // 提取文件名前10位的日期字符串(比如"2019/10/05")
    const dateStr = fileName.substring(0, 10);
    
    try {
      // 将字符串转换成Date对象,注意把/替换成-,避免解析问题
      const fileDate = new Date(dateStr.replace(/\//g, '-'));
      // 把文件日期的时间也清零,和当前日期统一对比标准
      fileDate.setHours(0, 0, 0, 0);
      
      // 如果文件日期早于当前日期,加入待删除列表
      const ownerEmail = file.getOwner().getEmail();
      if (fileDate < today) {
        obj.push({
          id: file.getId(),
          date: fileDate,
          owner: ownerEmail
        });
      }
    } catch (e) {
      // 如果文件名不符合日期格式,跳过这个文件,避免脚本报错
      console.log(`跳过不符合格式的文件:${fileName},错误信息:${e.message}`);
    }
  }
  
  // 按日期倒序排序(可选,方便查看待删除的文件)
  obj.sort((a, b) => b.date - a.date);
  return obj;
};

function deleteFiles() {
  // 替换成你要校验的所有者邮箱
  const targetEmail = "XXXXXXXXXXXXXXXXX@gmail.com";
  const filesToDelete = getOldFileIDs();
  
  filesToDelete.forEach(fileInfo => {
    if (fileInfo.owner === targetEmail) {
      try {
        Drive.Files.remove(fileInfo.id);
        console.log(`已删除文件:ID=${fileInfo.id},日期=${fileInfo.date.toISOString().split('T')[0]}`);
      } catch (e) {
        console.log(`删除文件失败:ID=${fileInfo.id},错误信息:${e.message}`);
      }
    }
  });
};

关键细节说明

  1. 日期解析处理:把文件名里的/替换成-是因为部分运行环境对YYYY/MM/DD格式的日期解析可能有问题,换成YYYY-MM-DD标准ISO格式,解析更稳定。
  2. 时间清零:不管文件日期的具体时间,只对比年月日,确保当天的文件不会被误删。
  3. 异常捕获:加入try-catch处理,避免遇到不符合格式的文件名导致脚本中断。
  4. 日志输出:添加了console.log,方便你在脚本编辑器的日志里查看操作情况,排查问题。

内容的提问来源于stack exchange,提问作者Digital Farmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:19:53