使用Google Apps Script批量重命名PDF文件报错求助
解决Google Apps Script批量重命名PDF文件的报错问题
错误原因
DriveApp.getFolderById(...).getFilesByName(...) 返回的是FileIterator(文件迭代器),它是匹配文件名的文件集合,不是单个文件对象。而setName()是单个File对象的专属方法,直接在迭代器上调用自然会触发TypeError。
另外调用函数时,folderId属于字符串类型,必须用引号包裹,否则会被当作未定义变量解析,引发额外错误。
修正后的代码
function renameFiles(folderId, oldName, newName) { // 获取目标文件夹对象 const targetFolder = DriveApp.getFolderById(folderId); // 获取所有匹配旧文件名的文件迭代器 const filesIterator = targetFolder.getFilesByName(oldName); // 遍历迭代器,逐个对文件执行重命名操作 while (filesIterator.hasNext()) { const file = filesIterator.next(); file.setName(newName); console.log(`已完成重命名:"${oldName}" → "${newName}"`); } } // 调用函数:注意folderId需用引号包裹为字符串 renameFiles("1xOHocJ4HU6OAVLPH63vINUd_F8NdWolT", "_test1.pdf", "test1.pdf");
补充说明
- 如果文件夹内存在多个同名的
_test1.pdf,这段代码会将所有匹配文件统一重命名为test1.pdf(Google Drive支持同目录下存在同名文件) - 若需要避免重名冲突,可以在
newName后拼接序号或时间戳 - 运行前请确保你拥有目标文件夹的编辑权限
内容的提问来源于stack exchange,提问作者Christine
相关产品推荐
相关产品推荐

