在Google云端硬盘中搜索包含Google Apps脚本中的“ @”符号的文件内容

时间:2019-07-22 10:23:51

标签: google-apps-script

我需要在Google云端硬盘中搜索各种看起来包含电子邮件地址的文件类型(txt,csv,xls)。

因此,我尝试使用以下搜索文件查询的变体形式:

files  = DriveApp.searchFiles
(
    ' ('+
        ' (mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") OR' +
        ' (mimeType = "text/xml") OR' +
        ' (mimeType = "text/csv") OR' +
        ' (mimeType = "text/plain") OR' +
        ' (mimeType = "application/octet-stream")' +
    ' )' +
' and' +
    ' ('+
        ' (fullText contains \'"@"\') '+
    ' )'
);

但是,搜索的'fullText'部分似乎是从用户/文件所有者字段中选取@,因为它只是返回每个具有指定Mime类型的文件,无论实际文件内容是否包含@符号或不是。

如果我将查询的全文部分更改为“(非全文包含\'“ my.email@domain.com” \')“,则它包含我未拥有/未修改的预期类型的​​文件-我只能看到域中其他用户拥有的文件。

所以我的问题是,有没有一种方法可以将用户名字段排除在文件搜索的fullText部分之外,以便仅在实际文件内容中搜索@符号?还是我可以在Google云端硬盘中搜索看起来包含电子邮件地址的文件内容的另一种方式。

1 个答案:

答案 0 :(得分:0)

the documentation中查看了searchFiles的参数后,我注意到它们并没有发出单独专门查看内容的信号,fullText似乎是唯一的方法处理内容,但包括所有其他详细信息,如in this documentation

一个可能的解决方法是分别评估文件,但是我怀疑这是扩展名所做的事情,因为它可以解释为什么花这么长时间。或者,您可以尝试搜索' @ ',如果存在空格,则该地址不能是电子邮件地址,而将忽略作者/编辑者。