【问题标题】:A Google script to delete Google drive files made on weekends by file name如何编写一个谷歌脚本来删除周末按文件名制作的谷歌驱动器文件
【发布时间】:2021-12-31 01:19:23
【问题描述】:

我需要编写一个 google 脚本来删除在周末日期制作的文件,文件名中包含某些单词,例如“SP500”。

【问题讨论】:

  • 我必须为我糟糕的英语水平道歉。不幸的是,我无法理解files made on weekend dates。可以问一下具体情况吗?
  • 田池,谢谢你的提问。我的意思是在周六或周日创建的文件。迈克
  • 关于What I mean is files created on Saturdays or Sundays.,在这种情况下,例如1年前创建了多个文件,如果这些文件是在Saturdays or Sundays上创建的,您要删除它们吗?还有,比如今天是星期六,你想怎么做?不幸的是,我仍然无法理解你的问题。这是因为我的英语水平不好。对此我深表歉意。

标签: google-drive-api delete-file script weekend


【解决方案1】:

您可以使用DriveApp 开发一个脚本来轻松运行该操作。首先,您应该使用.getFilesByName() 获取文件名上带有SP500 字符串的所有相关文件。然后您可以通过使用.getDateCreated().getDay() 检查创建日期来过滤它们。如果当前文件是在星期六或星期日创建的(分别为 60 天),则将使用 .setTrashed() 删除该文件。请参阅以下脚本以获取先前方法的运行示例。

function myFunction() {
  var files = DriveApp.getFilesByName('SP500');
  while (files.hasNext()) {
    var file = files.next();
    if (file.getDateCreated().getDay() == 6 || file.getDateCreated()
      .getDay() == 0) {
      file.setTrashed(true);
    }
  }
}

更新

如果您想测试以前的方法,可以将它们移动到测试文件夹。首先,您应该在每个示例中使用 .getFoldersByName() 获取 Folder 对象。然后您只需将.setTrashed() 替换为.moveTo() 即可将文件移动到测试文件夹。然而,前面的脚本将文件发送到垃圾箱,它们将在 30 天后被删除。如果出现问题,您可以手动恢复它们。

【讨论】:

  • 雅克-古泽尔苍鹭,谢谢。如果我想在实现删除并将文件移动到临时目录之前进行测试,那是如何完成的? (例如,移至:drive.google.com/drive/folders/testfolder-123
  • 附录:除了周末日期要求外,是否可以添加延迟,例如仅在 30 天后丢弃?再次感谢您。
  • 你好@MikeT!我刚刚更新了我的答案,看看,如果您有任何疑问,请告诉我。
  • 您好 Jacques-Guzel Heron,再次感谢您。我准备实施。过去,我在 google 工作表中创建了其他函数(脚本?)并使用触发器对其进行了调度。你会建议我用什么方法/程序来运行这个脚本?
  • 我了解到您有一个触发器,并且您想运行它。如果你想自动运行它,你必须根据你的需要配置它(每小时?每天?基于某些事件?)Here你可以看到一些例子。如果您想手动运行它,您可以在 Apps Script IDE 上打开项目并单击 ▶ Run 执行它。
猜你喜欢
  • 1970-01-01
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-18
  • 1970-01-01
  • 2013-01-15
  • 1970-01-01
相关资源
最近更新 更多