google-apps-script - 将文件夹 id 字符串传递给调用 DriveApp.getFolderById(id).getDateCreated() 的自定义函数时,Apps 脚本会引发错误;
问题描述
此代码将引发此错误:
例外:无效参数:id(第 2 行,文件“代码”)
在编辑器窗口的顶部以红色显示,并且仍然记录创建日期文件。这里发生了什么?
function getFolderData(id){
let folder = DriveApp.getFolderById(id);
return folder.getDateCreated();
}
Logger.log(getFolderData('1DsSOQD52eWPnCPyuQL09KhyDpdwdJ1jl'));
并且此代码成功运行
function getFolderData(){
let id = '1DsSOQD52eWPnCPyuQL09KhyDpdwdJ1jl';
let folder = DriveApp.getFolderById(id);
Logger.log(folder.getDateCreated());
}
getFolderData();
我已经检查以确保输入是字符串类型
function getFolderData(id){
return 'typeof SourceID: ' + typeof id;
}
Logger.log(getFolderData('1DsSOQD52eWPnCPyuQL09KhyDpdwdJ1jl'));
其中记录了“[20-11-30 21:36:03:200 EST] typeof SourceID: string”,这是正确的。
解决方案
问题:
您的方法的问题是您试图getFolderData(id)
通过脚本编辑器执行,但该函数不能作为独立函数运行,因为它需要一个参数,即id
。
这部分代码:
Logger.log(getFolderData('1DsSOQD52eWPnCPyuQL09KhyDpdwdJ1jl'));
是正确的,但它在每个函数之外,因此它是一个全局执行。无论您决定运行什么功能,它都会被执行。
虽然问题仍然存在,但您正在尝试从需要参数的脚本编辑器中执行一个函数。
解决方案:
创建一个新函数,将其命名为您喜欢的名称并getFolderData
在此函数中调用:
function runMe(){
Logger.log(getFolderData('1DsSOQD52eWPnCPyuQL09KhyDpdwdJ1jl'));
}
function getFolderData(id){
let folder = DriveApp.getFolderById(id);
return folder.getDateCreated();
}
确保您已选择该runMe
功能并执行它:
请不要忘记删除Logger.log(getFolderData('1DsSOQD52eWPnCPyuQL09KhyDpdwdJ1jl'));
每个函数之外的内容,并且只在这个新创建的runMe
函数中使用它。
推荐阅读
- html - 如何选择第一个
- 在无序列表中?
- ios - 如何以编程方式检测 iPhone XS 或 iPhone X?
- c# - 具有自定义角色的 ASP.NET MVC FormsAuthentication.SetAuthCookie
- reflection - 在 Kotlin 中通过反射获取 Enum 值
- sql - TRUNC(NVL(COLUMN, '2')) ORA-01722: 无效数字
- robotframework - 如何使用机器人框架找到动态元素?
- python - 使用函数在 Python 中编写测验
- javascript - 在 Express JS 中使用可选中间件
- mongodb - Mongo 身份验证通过命令行或解释器成功,通过库失败
- angular - Angular直接返回api请求和shareReplay