需求:定时触发Google Apps Script获取Drive二级子文件夹共享链接
Google Drive二级子文件夹共享链接批量获取+定时执行方案
一、定制化脚本编写
以下脚本仅针对根文件夹下的直接子文件夹(即你说的二级子文件夹)生成共享链接,不会遍历更深层级的文件或文件夹:
function getSecondLevelFolderLinks() { // 替换成你的根Folder的ID const rootFolderId = "你的根文件夹ID"; const rootFolder = DriveApp.getFolderById(rootFolderId); const subFolders = rootFolder.getFolders(); const results = []; // 仅遍历根文件夹下的直接子文件夹 while (subFolders.hasNext()) { const folder = subFolders.next(); // 设置为「任何人可通过链接查看」权限,可按需修改 folder.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW); // 获取共享链接 const shareLink = folder.getUrl(); results.push(`文件夹名称:${folder.getName()} | 共享链接:${shareLink}`); } // 将结果写入新的Google文档,也可改为写入表格(见下方说明) const doc = DocumentApp.create("二级文件夹共享链接列表"); doc.getBody().appendParagraph(results.join("\n\n")); Logger.log("任务完成,已生成共享链接列表文档"); }
脚本关键说明
- 替换根文件夹ID:打开你的根Folder,地址栏中
folders/后的一串字符就是ID,比如https://drive.google.com/drive/folders/abc123XYZ中的abc123XYZ - 修改共享权限:如果不需要公开可查看,可替换
setSharing的参数,比如改为DriveApp.Access.DOMAIN_WITH_LINK(仅同域用户可查看)或指定特定用户 - 结果输出调整:如果想写入Google表格,可把生成文档的代码替换为:
const sheet = SpreadsheetApp.create("二级文件夹共享链接列表").getActiveSheet(); sheet.appendRow(["文件夹名称", "共享链接"]); results.forEach(item => { const [name, link] = item.split(" | 共享链接:"); sheet.appendRow([name.replace("文件夹名称:", ""), link]); });
二、定时触发配置(详细步骤)
按照以下步骤配置3-4小时自动执行:
- 打开Google Apps Script编辑器:在Google Drive右键空白处→更多→Google Apps Script,或直接打开script.google.com
- 粘贴上述脚本,点击顶部保存按钮,给项目起个名字(比如「Drive二级文件夹链接工具」)
- 点击左侧菜单栏的时钟图标(「触发器」)
- 点击右下角「添加触发器」按钮
- 配置触发参数:
- 选择要运行的函数:
getSecondLevelFolderLinks - 选择部署类型:「基于时间的触发器」
- 选择时间驱动类型:「小时计时器」
- 选择间隔:「每3小时」或「每4小时」(按需选择)
- 时区:选择你所在的时区(比如「Asia/Shanghai」)
- 选择要运行的函数:
- 点击「保存」,按照提示完成授权(若提示「此应用未验证」,点击「高级」→「转到[项目名称](不安全)」继续授权即可)
内容的提问来源于stack exchange,提问作者Jim
相关产品推荐
相关产品推荐

