Google电子表格,脚本,备份文件,子文件夹

时间:2015-03-21 05:43:15

标签: javascript google-apps-script google-sheets backup subdirectory

我需要每天备份一个文件,我已使用以下脚本解决了这个问题:

  function myFunction() {
      DocsList.getFileById(SpreadsheetApp.getActiveSpreadsheet().getId()).makeCopy(SpreadsheetApp.getActiveSpreadsheet().getName() + "_Backup");
    }

我正在使用时间驱动的触发器来设置我希望脚本创建备份文件的时间。但是,我希望这些每日备份转到特定的子文件夹,然后调用它"每日备份文件夹"。

有人可以帮我写一个脚本吗?

提前致谢!

2 个答案:

答案 0 :(得分:2)

使用DocsList服务: 尝试:

function backUp() {
var backup = DocsList.getFileById(SpreadsheetApp.getActiveSpreadsheet()
    .getId())
    .makeCopy(SpreadsheetApp.getActiveSpreadsheet()
        .getName() + "_Backup");
backup.addToFolder(DocsList.getFolder('TEST BACKUP'));
backup.removeFromFolder(DocsList.getRootFolder());
}

但是,由于DocsList服务已弃用,您可能需要考虑Drive服务。 尝试:

function backUP() {
DriveApp.getFileById(SpreadsheetApp.getActiveSpreadsheet()
    .getId())
    .makeCopy(SpreadsheetApp.getActiveSpreadsheet()
        .getName() + "_Backup", (DriveApp.getFolderById('folder_id')));
}

填写文件夹' Daily Backup文件夹的实际ID'在脚本的最后一行,看看是否有效?

答案 1 :(得分:0)

makeCopy(name)就是你正在使用的。

makeCopy(名称,目的地)是您需要使用的。

解决方案:

您需要获取文件夹的ID。打开要在Google云端硬盘中保存备份文件的文件夹,然后在浏览器的地址栏中查看其网址。

它将如下所示:" https://drive.google.com/drive/folders/ zzzzz "。复制此zzzzz并替换下面代码中的xxxxxx。

function myFunction() {
      DocsList.getFileById(SpreadsheetApp.getActiveSpreadsheet().getId()).makeCopy(SpreadsheetApp.getActiveSpreadsheet().getName() + "_Backup", DriveApp.getFolderById("xxxxxxxxxx"));
    }