我想创建一个脚本,触发器可以每周运行一次,以备份驱动器中的工作表,并在文件名中添加它运行的日期。
我已经看过如何在这样的帖子中打开工作表时这样做: Google Spreadsheet, script, backup file, subfolder 但我不想让表单打开...我只是想让它自己完成。
我没有使用DocsList,并且使用较新的DriveApp类并收到错误“TypeError:无法在对象FileIterator中找到函数makeCopy”。当我运行此代码并且无法弄清楚如何调用该方法时:
DriveApp.getFilesByName("WarehousePrototype")
.makeCopy("WarehousePrototype" + Date() + " backup");
答案 0 :(得分:0)
由于方法getFilesByName
的名称中的复数 Files 表示,它不仅返回一个文件:它返回文件迭代器。原因是文件名在Drive中不是唯一的:您可以有多个名为“WarehousePrototype”的文件。
通常情况下,会使用hasNext
运行while循环并在其中调用next
。但是,如果您确定该名称只有一个文件,则可以拨打next
:
DriveApp.getFilesByName("WarehousePrototype").next().makeCopy("WarehousePrototype" + Date() + " backup");
但是通过Id获取文件更容易,更可靠:
DriveApp.getFileById(file_id).makeCopy("WarehousePrototype" + Date() + " backup");