Google apps script 查找并替换共享驱动器中的多个文档

Google apps script 查找并替换共享驱动器中的多个文档,google-apps-script,google-drive-api,google-drive-shared-drive,Google Apps Script,Google Drive Api,Google Drive Shared Drive,问题是:我在多个共享驱动器中有多个文档(特别是谷歌表单),需要替换同一个单词。一些人在这个论坛上搜索到了下面的代码,但它似乎不起作用。我没有收到任何错误消息,但当我检查文件时,没有任何更改。我检查并确保正确输入搜索字符串和替换字符串 我需要做一些不同的事情来让它检查共享驱动器中的文件吗?我试着在高级Google服务中打开驱动API,但这在第6行中给了我一个错误( var doc=DocumentApp.openById(file.getId());) 以下是我使用的代码: functi

问题是:我在多个共享驱动器中有多个文档(特别是谷歌表单),需要替换同一个单词。一些人在这个论坛上搜索到了下面的代码,但它似乎不起作用。我没有收到任何错误消息,但当我检查文件时,没有任何更改。我检查并确保正确输入搜索字符串和替换字符串

我需要做一些不同的事情来让它检查共享驱动器中的文件吗?我试着在高级Google服务中打开驱动API,但这在第6行中给了我一个错误( var doc=DocumentApp.openById(file.getId());)

以下是我使用的代码:

     function myFunction() {
  var files = DriveApp.getFiles();   // Note: this gets *every* file in your Google Drive
  while (files.hasNext()) {
    var file = files.next();
    Logger.log(file.getName());
    var doc = DocumentApp.openById(file.getId());
    doc.replaceText("My search string or regex", "My replacement string");
  }
  Logger.log("Done")
}
DriveApp.getFiles()
只返回“我的驱动器”上的文件。为了能够在共享驱动器(以前称为Team Drive)中获取文件,您必须启用驱动器高级服务,而不是

var files = DriveApp.getFiles();
使用类似

var files = Drive.Files.list(options);
相关的


要访问共享驱动器,您需要在高级谷歌服务中激活驱动器API,但要访问它,您必须使用
驱动器
,而不是
驱动应用程序

如果要检索共享驱动器并查找具有特定名称的文件,可以尝试以下操作:

代码
//版权所有2020谷歌有限责任公司。
//SPDX许可证标识符:Apache-2.0
函数retrieveFiles(){
var allDrives=Drive.Drives.list().items;
让fileName='FILE_NAME';
for(设i=0;i
解释 上面的代码使用该方法检索所有共享驱动器,然后对于每个共享驱动器,使用搜索名为
FILE\u NAME
的所有文件。然后,它使用
SpreadsheetApp
访问每个文件

注 请记住,代码可以定制,以满足您的具体需求

参考文献
  • )

  • )

  • )

// Copyright 2020 Google LLC.
// SPDX-License-Identifier: Apache-2.0

function retrieveFiles() {
   var allDrives = Drive.Drives.list().items;
   let fileName = 'FILE_NAME';
   for (let i = 0; i < allDrives.length; i++) {
      var driveId = allDrives[i].id;
      console.log(id)
      var optionalArgs = {
         'driveId': driveId,
         'includeItemsFromAllDrives': true,
         'corpora': 'drive',
         'supportsAllDrives': true,
         'q': "title=" + "'" + fileName + "'"
      };
      var filesReturned = Drive.Files.list(optionalArgs).items;
      for (let j = 0; j < filesReturned.length; j++) {
         var fileId = filesReturned[j].id;
         var sheet = SpreadsheetApp.openById(fileId);
         //sheet manipulation
      }
   }
}