Google apps script 使用变量';DriveApp searchFiles查询中的s值
我可能有个愚蠢的问题,但我找不到解决办法 我在我的谷歌硬盘中浏览了很多文件,每个文件中都有一个0-10000范围内的数字,所以我做了如下:Google apps script 使用变量';DriveApp searchFiles查询中的s值,google-apps-script,google-drive-api,Google Apps Script,Google Drive Api,我可能有个愚蠢的问题,但我找不到解决办法 我在我的谷歌硬盘中浏览了很多文件,每个文件中都有一个0-10000范围内的数字,所以我做了如下: for(var i = 0; i < 10000; i++) { var test = "IT" + i; Logger.log(test); var search = DriveApp.getFolderById("ID") .searchFiles('fullText contains te
for(var i = 0; i < 10000; i++)
{
var test = "IT" + i;
Logger.log(test);
var search = DriveApp.getFolderById("ID")
.searchFiles('fullText contains test');
Logger.log(search);
while (search.hasNext()) {
var file = search.next();
if(search.hasNext())
break;
Logger.log(file.getName());
}
...
因此,我可以使用变量
test
的值,即“IT0”,而不是文本字符串test
?当您要在字符串中添加双引号时,必须使用转义序列。所以你的字符串应该是:
“全文包含”它“根据:
运算符仅对contains
的整个字符串标记执行匹配。例如,如果文档的全文包含字符串HelloWorld,则查询全文
将返回结果。像全文包含“HelloWorld”
在这种情况下不会返回结果fullText这样的查询包含“Hello”
运算符,如果该运算符被双引号括起,则该运算符与字母数字短语完全匹配。例如,如果文档的包含
包含字符串Hello there world,则查询fullText
将返回结果,但查询fullText包含“Hello there”
将不返回结果。此外,由于搜索是字母数字的,如果文档的fullText包含“Hello world”
包含字符串Hello\u world,则查询fullText
将返回结果fullText包含“Hello world”
searchFiles('fullText contains“IT”'+test)
,其计算结果类似于fullText contains“IT”0
(或fullText contains“IT”IT0
,具体取决于您是否更改了其他代码部分)而不是fullText contains“IT0”
在调试基于变量的查询中的错误时,一个好的做法是首先执行构造(以便您可以准确地记录查询),然后实际执行查询:
var myQuery = "fullText contains \"" + myVar + "\"";
// var mySingleQuotedQuery = "fullText contains '" + myVar + "'";
try {
/* use myQuery */
}
catch (err) {
err.message = "Error using 'myQuery': " + err.message;
// Log debug info to StackDriver:
console.error({message: err.message, error: err, query: myQuery, variable: myVar});
throw err;
}
.searchFiles('fullText包含'+yourVariable);
尝试了您的方法,searchFiles('fullText包含“IT”+test)
-不起作用。我收到错误:无效参数:q(第18行,文件“test”)我有点想这样做,但不幸的是它不起作用。原始公式看起来像这样.searchFiles>('fullText contains“IT2595”);
那么你是否尝试在双引号前添加反斜杠?哦,天哪,我在这一页上,但没有在下面这样做。非常感谢,现在是wokring。
var myQuery = "fullText contains \"" + myVar + "\"";
// var mySingleQuotedQuery = "fullText contains '" + myVar + "'";
try {
/* use myQuery */
}
catch (err) {
err.message = "Error using 'myQuery': " + err.message;
// Log debug info to StackDriver:
console.error({message: err.message, error: err, query: myQuery, variable: myVar});
throw err;
}