【问题标题】:How to use Universal Find and Replace? (ELI5)如何使用通用查找和替换? (ELI5)
【发布时间】:2016-09-10 15:17:47
【问题描述】:

我正在共享 Google Drive 文件夹中的一个项目,我们最近了解到我们需要更改一些字符串,这些字符串在所有文档中都可以找到,但字符串略有不同。有数百个文件,不可能一个一个地浏览,看了几眼,我找到了一个通用查找和替换脚本。

https://ctrlq.org/code/19926-universal-find-replace-in-google-drive

问题是,我几乎没有使用代码的经验,即使根据网站上的说明,我也不知道我与脚本有什么关系。所有这些对我来说都是胡言乱语,如果有人能指导我完成所有这些,我将非常感激。

问题:

  1. 我应该在脚本中的哪个位置指定相关驱动器文件夹以及如何指定它?“文件夹路径”这件事让我更加困惑,所以如果你能告诉我确切的位置我可以找到所需的信息,那太好了。
  2. 在哪里指定需要替换的字符串?我可以清楚地看出 doc.replaceText 与它有关,但它说“你也可以使用正则表达式 让我很好奇在此之前是否还有其他需要更改的地方?
  3. 我应该如何复制脚本代码以及将文件放在 Google 云端硬盘的什么位置?
  4. 如果还有其他我可能忽略的步骤,请同时提及。

另外,是否可以在一个脚本中替换多个字符串? (即将所有“红色”更改为“蓝色”并将所有“黑色”更改为“白色”)

提前谢谢大家,这可能最终成为救命稻草?

【问题讨论】:

  • 您应该直接联系该网站的作者。

标签: google-apps-script google-drive-api google-docs google-docs-api


【解决方案1】:

您可能需要查看 Apps 脚本的 Drive ServiceDocument Service 以帮助您更熟悉要使用的类和函数。

驱动服务

此服务允许脚本在 Google Drive 中创建、查找和修改文件和文件夹。

文件服务

此服务允许脚本创建、访问和修改 Google Docs 文件。


创建文件夹

使用示例代码:

 // Log the name of every folder in the user's Drive.
 var folders = DriveApp.getFolders();
 while (folders.hasNext()) {
   var folder = folders.next();
   Logger.log(folder.getName());
 }

你可以设置

var newFolder = DriveApp.createFolder('My New Folder');
//To check if you successfully created a folder
Logger.log(newFolder.getId())
//To set sub folder under "My New Folder"
var id = newFolder.getId()
var subFolder = newFolder.createFolder('New Sub Folder')

2。我在哪里指定我需要替换的字符串?我显然可以看出 doc.replaceText 与它有关,但它说“你也可以使用正则表达式”这一事实让我很好奇在此之前是否还有其他需要更改的地方?

你可以使用findText(searchPattern, from)

从给定的搜索结果开始,在元素的内容中搜索指定的文本模式。

不完全支持 JavaScript 正则表达式功能的子集,例如捕获组和模式修饰符。

提供的正则表达式模式独立匹配当前元素中包含的每个文本块。

3.我应该如何复制脚本代码以及将文件放在 Google 云端硬盘的什么位置?

您可以使用Apps Script Console 创建您的代码,这将放在您的drive folder

最后,这里有一个示例代码,它将改变text 的颜色:

 var body = DocumentApp.getActiveDocument().getBody();

 // Use editAsText to obtain a single text element containing
 // all the characters in the document.
 var text = body.editAsText();

 // Insert text at the beginning of the document.
 text.insertText(0, 'Inserted text.\n');

 // Insert text at the end of the document.
 text.appendText('\nAppended text.');

 // Make the first half of the document blue.
 text.setForegroundColor(0, text.getText().length / 2, '#00FFFF');

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 2014-09-01
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 2012-09-22
    • 2020-08-05
    • 2011-03-02
    相关资源
    最近更新 更多