Google apps script 如果文件名的起始日期早于当前日期(Google Drive),则删除该文件
在Stackoverflow社区的帮助下,我创建了这个脚本,可以删除超过3小时的文件:Google apps script 如果文件名的起始日期早于当前日期(Google Drive),则删除该文件,google-apps-script,Google Apps Script,在Stackoverflow社区的帮助下,我创建了这个脚本,可以删除超过3小时的文件: function getOldFileIDs() { // Old date is 3 Hours var oldDate = new Date().getTime() - 3600*1000*3; var cutOffDate = new Date(oldDate).toISOString(); // Get folderID using the URL on google drive
function getOldFileIDs() {
// Old date is 3 Hours
var oldDate = new Date().getTime() - 3600*1000*3;
var cutOffDate = new Date(oldDate).toISOString();
// Get folderID using the URL on google drive
var folder = DriveApp.getFolderById('XXXXXXXXXXXXXXXXXXXXX');
var files = folder.searchFiles('modifiedDate < "' + cutOffDate + '"');
var obj = [];
while (files.hasNext()) {
var file = files.next();
obj.push({id: file.getId(), date: file.getDateCreated(), owner: file.getOwner().getEmail()}); // Modified
}
obj.sort(function(a, b) {
var a= new Date(a.date).valueOf();
var b= new Date(b.date).valueOf();
return b-a;
});
obj.shift();
return obj; // Modified
};
function deleteFiles() {
var email = "XXXXXXXXXXXXXXXXX@gmail.com"; // Added
var obj = getOldFileIDs(); // Modified
obj.forEach(function(e) { // Modified
if (e.owner == email) { // Added
Drive.Files.remove(e.id); // Modified
}
});
};
函数getOldFileIDs(){
//旧日期是3小时
var oldDate=new Date().getTime()-3600*1000*3;
var cutOffDate=新日期(oldDate).toISOString();
//使用google drive上的URL获取folderID
var folder=DriveApp.getFolderById('xxxxxxxxxxxxxxxxxxxxxx');
var files=folder.searchFiles('modifiedDate<'+截止日期+'”);
var-obj=[];
while(files.hasNext()){
var file=files.next();
obj.push({id:file.getId(),日期:file.getDateCreated(),所有者:file.getOwner().getEmail()});//修改
}
对象排序(函数(a,b){
var a=新日期(a.Date).valueOf();
var b=新日期(b.Date).valueOf();
返回b-a;
});
obj.shift();
return obj;//已修改
};
函数deleteFiles(){
var电子邮件=”XXXXXXXXXXXXXXXXX@gmail.com“;//添加
var obj=getOldFileIDs();//已修改
对象forEach(函数(e){//修改
如果(e.owner==电子邮件){//添加
Drive.Files.remove(e.id);//修改
}
});
};
此文件夹中的文件名始终以日期开头,例如:
2019/10/05 SerieA Vasco da Gama x Flamengo.pdf
我想帮助您了解我需要在脚本中修改什么,以及它的外观,以便在创建时间超过3小时时不删除它,而是从日期早于当前日期的it文件中删除它
我试图修改.getdate
,但完全失败,我无法让脚本解析文件名的开头,我只能找到文件名及其id。- 文件名为
。2019/10/05 SerieA Vasco da Gama x Flamengo.pdf
- 日期字符串和格式始终分别为文件名和
顶部的10个字符yyyy/MM/dd
- 日期字符串和格式始终分别为文件名和
- 您想删除文件名中在“今天”之前包含旧日期字符串的文件。
- 在这种情况下,
超过3小时的创建将被忽略。因此
也被忽略modifiedDate
- 在这种情况下,
- 您希望使用谷歌应用程序脚本实现这一点
function getOldFileIDs() {
var folder = DriveApp.getFolderById('XXXXXXXXXXXXXXXXXXXXX');
var files = folder.getFiles();
var today = new Date(new Date().toDateString()).getTime();
var obj = [];
while (files.hasNext()) {
var file = files.next();
var dateFromFilename = file.getName().substr(0, 10);
if (/\d{4}\/\d{2}\/\d{2}/.test(dateFromFilename)) { // Here, the format of date string is checked.
var date = new Date(dateFromFilename).getTime();
if (date < today) {
obj.push({id: file.getId(), date: file.getDateCreated(), owner: file.getOwner().getEmail()});
}
}
}
return obj;
};
流量:
getOldFileIDs()
的函数,如下所示
function getOldFileIDs() {
var folder = DriveApp.getFolderById('XXXXXXXXXXXXXXXXXXXXX');
var files = folder.getFiles();
var today = new Date(new Date().toDateString()).getTime();
var obj = [];
while (files.hasNext()) {
var file = files.next();
var dateFromFilename = file.getName().substr(0, 10);
if (/\d{4}\/\d{2}\/\d{2}/.test(dateFromFilename)) { // Here, the format of date string is checked.
var date = new Date(dateFromFilename).getTime();
if (date < today) {
obj.push({id: file.getId(), date: file.getDateCreated(), owner: file.getOwner().getEmail()});
}
}
}
return obj;
};
函数getOldFileIDs(){
var folder=DriveApp.getFolderById('xxxxxxxxxxxxxxxxxxxxxx');
var files=folder.getFiles();
var today=new Date(new Date().toDateString()).getTime();
var-obj=[];
while(files.hasNext()){
var file=files.next();
var dateFromFilename=file.getName().substr(0,10);
如果(/\d{4}\/\d{2}\/\d{2}/.test(dateFromFilename)){//此处,则检查日期字符串的格式。
var date=新日期(dateFromFilename).getTime();
如果(日期<今天){
推送({id:file.getId(),日期:file.getDateCreated(),所有者:file.getOwner().getEmail()});
}
}
}
返回obj;
};
参考资料:
- 文件名为
。2019/10/05 SerieA Vasco da Gama x Flamengo.pdf
- 日期字符串和格式始终分别为文件名和
顶部的10个字符yyyy/MM/dd
- 日期字符串和格式始终分别为文件名和
- 您想删除文件名中在“今天”之前包含旧日期字符串的文件。
- 在这种情况下,
超过3小时的创建将被忽略。因此
也被忽略modifiedDate
- 在这种情况下,
- 您希望使用谷歌应用程序脚本实现这一点
function getOldFileIDs() {
var folder = DriveApp.getFolderById('XXXXXXXXXXXXXXXXXXXXX');
var files = folder.getFiles();
var today = new Date(new Date().toDateString()).getTime();
var obj = [];
while (files.hasNext()) {
var file = files.next();
var dateFromFilename = file.getName().substr(0, 10);
if (/\d{4}\/\d{2}\/\d{2}/.test(dateFromFilename)) { // Here, the format of date string is checked.
var date = new Date(dateFromFilename).getTime();
if (date < today) {
obj.push({id: file.getId(), date: file.getDateCreated(), owner: file.getOwner().getEmail()});
}
}
}
return obj;
};
流量:
getOldFileIDs()
的函数,如下所示
function getOldFileIDs() {
var folder = DriveApp.getFolderById('XXXXXXXXXXXXXXXXXXXXX');
var files = folder.getFiles();
var today = new Date(new Date().toDateString()).getTime();
var obj = [];
while (files.hasNext()) {
var file = files.next();
var dateFromFilename = file.getName().substr(0, 10);
if (/\d{4}\/\d{2}\/\d{2}/.test(dateFromFilename)) { // Here, the format of date string is checked.
var date = new Date(dateFromFilename).getTime();
if (date < today) {
obj.push({id: file.getId(), date: file.getDateCreated(), owner: file.getOwner().getEmail()});
}
}
}
return obj;
};
函数getOldFileIDs(){
var folder=DriveApp.getFolderById('xxxxxxxxxxxxxxxxxxxxxx');
var files=folder.getFiles();
var today=new Date(new Date().toDateString()).getTime();
var-obj=[];
while(files.hasNext()){
var file=files.next();
var dateFromFilename=file.getName().substr(0,10);
如果(/\d{4}\/\d{2}\/\d{2}/.test(dateFromFilename)){//此处,则检查日期字符串的格式。
var date=新日期(dateFromFilename).getTime();
如果(日期<今天){
推送({id:file.getId(),日期:file.getDateCreated(),所有者:file.getOwner().getEmail()});
}
}
}
返回obj;
};
参考资料: