首页 > 解决方案 > 使用序号重命名具有相同名称的文件?

问题描述

我觉得这很简单,但我错过了一些东西。我有 130 个文件夹,都包含同一个文件“Document.pdf”。当然,内容因文件而异,但都具有相同的名称和扩展名。我要做的是让脚本获取所有这 130 个文件,并按顺序为它们命名从“1.pdf”到“130.pdf”。文件夹也按顺序排列 (1-130)。我在本地存储和 Google Drive 上都有这些文件夹,因此任何涉及 bash 或 GS​​cripts 的解决方案都适合我。谢谢。

标签: google-apps-scriptgoogle-drive-api

解决方案


这应该可以解决问题:

代码:

function renameFiles() {
  var iter = 1;
  while (iter <= 130) {
    Logger.log(iter);
    var folders = DriveApp.getFoldersByName(iter);
    while (folders.hasNext()) {
      var folder = folders.next();
      Logger.log("Folder: " + folder.getName());
      var files = folder.getFilesByName("Document.pdf");
      while (files.hasNext()) {
        var file = files.next();
        file.setName(iter + "." + file.getMimeType().substr(-3));
        Logger.log("File: " + file.getName());
      }
    }
    iter++;
  }
}

假设:

  • 文件夹被命名为1, 2, ....130

样本输出:

输出


推荐阅读