使用基于当前日期的文件名打开文件

时间:2016-01-04 14:21:44

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

我有一个按名称打开文件的脚本,但每天都会使用新名称更新该文件。例如,文件名可以是< L661_CAD- 04-01-16 .csv'但第二天它可以改为' L661_CAD- 05-01-16 .csv'。

我希望名称的第一部分与L661_CAD-相同,并在脚本中更新日期,以便查看最新文件。

以下是我正在使用的当前代码,它查找完整的文件名:

var fSource = DriveApp.getFolderById('0B2lVvlNIDosoajRRMUwySVBPNVE'); // reports_folder_id = id of folder where csv reports are saved
var fi = fSource.getFilesByName('L661_BOM-CAD_14-12-15.csv'); // latest report file

2 个答案:

答案 0 :(得分:1)

有很多方法可以实现这一点 - 您可以通过任何方式获得Date对象的日,月和年。

以下是基于Google Apps脚本Utilities.formatDate方法的单线程序:

var filename = Utilities.formatDate(new Date(),
                                    Session.getScriptTimeZone(),
                                    "'L661_BOM-CAD_'dd-MM-yy'.csv'");

如果你想用它来获取任何abitrary日期的文件,你可以在第一个参数中提供目标日期。

如果您想使用“纯JavaScript”,您可以这样做:

var today = new Date()
var day = today.getDay();
if (day < 10) day = '0'+day;
var month = today.getMonth() + 1;
if (month < 10) month = '0'+month;
var year = today.getFullYear().toString().substr(2,2);

var filename = 'L661_BOM-CAD_%dd%-%mm%-%yy%.csv'
               .replace('%dd%',day)
               .replace('%mm%',month)
               .replace('%yy%',year);

对于想要根据自己的特定需求进行调整的人来说,matting dates in JavaScript,还有很多其他例子。

答案 1 :(得分:-1)

找到解决方案,希望这可以帮助别人

var date= Utilities.formatDate(new Date(), "GMT", "dd-MM-yy");
var fi = fSource.getFilesByName('*first part of the file name*'+ date +'.csv'); // L661_bom-cad is the first part of the file name