写一个文件的每周可触发备份

时间:2016-04-29 01:44:42

标签: google-apps-script google-sheets google-drive-api

我想创建一个脚本,触发器可以每周运行一次,以备份驱动器中的工作表,并在文件名中添加它运行的日期。

我已经看过如何在这样的帖子中打开工作表时这样做: Google Spreadsheet, script, backup file, subfolder 但我不想让表单打开...我只是想让它自己完成。

我没有使用DocsList,并且使用较新的DriveApp类并收到错误“TypeError:无法在对象FileIterator中找到函数makeCopy”。当我运行此代码并且无法弄清楚如何调用该方法时:

DriveApp.getFilesByName("WarehousePrototype")
.makeCopy("WarehousePrototype" + Date() + " backup");

1 个答案:

答案 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");