今天我无法运行连接到包含.next()
函数调用的特定Google电子表格的脚本,我用它来按名称访问其他电子表格。它会在电子表格顶部显示运行脚本取消关闭消息,直到超过最长执行时间。奇怪的是,我每天都有类似的文件与完全相同的脚本,而昨天的文件工作正常。我在下面创建了MWE。因此,当我运行它时,我可以获得前2条消息的警报,但不能获得第3条消息。
function test_script_hanging() {
var ui = SpreadsheetApp.getUi();
ui.alert("before getting files by name");
var getFilefile = DriveApp.getFilesByName("file");
ui.alert("after getting files by name");
var getID = getFilefile.next().getId();
ui.alert("after getting Id");
}
在某些情况下,我会在调用.next()
函数的行上注意到一条错误消息,说“执行此操作需要授权”。我试图撤销该文件的授权并再次授权,但这没有帮助。我试图提供对给定脚本的完全访问权限,但无法通过google的方式来执行此操作。
也许我可以在我的脚本中添加更多功能,以便在授权期间要求完全访问,这可能有助于运行我的主要功能。
我的问题是:
答案 0 :(得分:1)
这对我有用:
var fldr = DriveApp.getFolderById(folderID)
var file = fldr.getFilesByName(filename);
while(file.hasNext())
{
var fi = file.next();
if(fi.getName() == filename)
{
var id=fi.getId();
}
}