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

Google Spreadsheet, script, backup file, subfolder

本文关键字:文件夹 备份文件 脚本 电子表格 谷歌      更新时间:2023-09-26

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

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

我使用时间驱动触发器来设置我希望脚本创建备份文件的时间。但是,我希望这些日常备份转到一个特定的子文件夹,我们称之为"日常备份文件夹"。

有人能帮我写一个剧本吗?

提前感谢!

使用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')));
}

在脚本的最后一行填写文件夹"每日备份文件夹"的实际id,看看是否有效?

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

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

解决方案:

你需要获取文件夹的ID。打开你想在谷歌驱动器中保存备份文件的文件夹,并在浏览器的地址栏中检查其URL。

它看起来像:"https://drive.google.com/drive/folders/zzzzz"。复制此zzzzz并替换下面代码中的xxxxxx。

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