Guten Morgen,
ich möchte auf Google Drive mithilfe eines Spreadsheet-Scripts ein
Datei.Backup erstellen und zwar täglich mit einem Zeitstempel, der Jahr,
Monat und Tag enthält. Das funktioniert soweit auch. Eine zweite
Zeitstempelfunktion, bei der 5 Tage vom aktuellen Datum abgezogen
werden, nutze ich, um das Backup mit dem Zeitstempel von vor 5 Tagen
stets zu löschen.
1 | function CopySpreadSheet() {
|
2 | var folders=DriveApp.getFoldersByName("CSV");
|
3 | var SpreadsheetName = formatDate();
|
4 |
|
5 | while (folders.hasNext()) {
|
6 |
|
7 | var folder = folders.next();
|
8 | var file = SpreadsheetApp.getActiveSpreadsheet().copy(SpreadsheetName);
|
9 | var copyFile=DriveApp.getFileById(file.getId());
|
10 |
|
11 | folder.addFile(copyFile);
|
12 | DriveApp.getRootFolder().removeFile(copyFile);
|
13 | }
|
14 |
|
15 | var SpreadsheetName2 = formatDate2();
|
16 |
|
17 | var files = DriveApp.getFilesByName(SpreadsheetName2);
|
18 | while (files.hasNext()) {
|
19 | files.next().setTrashed(true);
|
20 | }
|
21 | }
|
22 |
|
23 | function formatDate() {
|
24 | var month, day, hour, minu, sec, d = new Date();
|
25 |
|
26 | month = ('0'+(d.getUTCMonth()+1)).slice(-2);
|
27 | day = ('0'+d.getUTCDate()).slice(-2);
|
28 | hour = ('0'+d.getUTCHours()).slice(-2);
|
29 | minu = ('0'+d.getUTCMinutes()).slice(-2);
|
30 | sec = ('0'+d.getUTCSeconds()).slice(-2);
|
31 |
|
32 | return '_Backup_CVE_' + d.getUTCFullYear() + month +(day);
|
33 | }
|
34 |
|
35 | function formatDate2() {
|
36 | var month, day, hour, minu, sec, d = new Date(new Date().getTime()-5*(24*3600*1000));
|
37 |
|
38 | month = ('0'+(d.getUTCMonth()+1)).slice(-2);
|
39 | day = ('0'+d.getUTCDate()).slice(-2);
|
40 | hour = ('0'+d.getUTCHours()).slice(-2);
|
41 | minu = ('0'+d.getUTCMinutes()).slice(-2);
|
42 | sec = ('0'+d.getUTCSeconds()).slice(-2);
|
43 |
|
44 | return '_Backup_CVE_' + d.getUTCFullYear() + month +(day);
|
Das Problem dabei ist, dass wenn ich eine Datei älter als 5 Tage habe,
diese natürlich nicht entfernt wird. Ich suche nach einer Lösung, um
Backupdateien mit Namen _Backup_CVE_YYYYMMDD älter als 5 tage zu
löschen. Meine Lösung löscht nur die Datei, die genau 5 Tage alt ist.