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

调试Google Drive自动删除脚本:未按时删除旧文件求助

脚本无法捕获1小时前文件的问题修复方案

你的脚本有两个核心问题导致无法正确筛选出目标文件:

  • 时间计算错误:3600*1*1*1得到的是3600毫秒(仅3.6秒),完全不是1小时的毫秒数。1小时等于3600秒,转换成毫秒需要乘以1000,也就是3600 * 1000。
  • 日期精度不足:用yyyy-MM-dd格式化日期会丢失时分秒信息,导致筛选条件变成“修改日期早于某一天”,而非“早于1小时前的具体时间”。比如2月19日全天修改的文件,哪怕是凌晨1点的,也不会被匹配到。

下面是修正后的完整脚本:

function getOldFileIDs() {
  var fileIDs = [];

  // 计算1小时前的时间点(毫秒级计算)
  var oldDate = new Date(Date.now() - 3600 * 1000);
  // 格式化到带时分秒的GMT时间,保证筛选精度
  var cutOffDate = Utilities.formatDate(oldDate, "GMT", "yyyy-MM-dd HH:mm:ss");

  var folder = DriveApp.getFolderById('1wEOKcLO4O1viIMDGRrPd7eNOV3eo3vK3');
  // 使用精确的时间格式执行搜索
  var files = folder.searchFiles('modifiedDate < "' + cutOffDate + '"');

  while (files.hasNext()) {
    var file = files.next();
    fileIDs.push(file.getId());
    Logger.log('待删除文件: ID=' + file.getId() + ', 名称=' + file.getName());
  }
  return fileIDs;
};

function deleteFiles() {
  var fileIDs = getOldFileIDs();
  fileIDs.forEach(function(fileID) {
    try {
      DriveApp.getFileById(fileID).setTrashed(true);
      Logger.log('已删除文件ID: ' + fileID);
    } catch(e) {
      Logger.log('删除失败,文件ID=' + fileID + ', 错误: ' + e.message);
    }
  });
};

额外优化说明:

  • 新增了try-catch块,避免单个文件删除失败(比如权限问题)导致整个脚本终止
  • 调整了日志内容,更清晰地记录操作状态
  • 用Date.now()替代new Date().getTime(),写法更简洁

内容的提问来源于stack exchange,提问作者Elizabeth Arcudi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 13:42:57