Iam尝试下面的代码,我能够删除zip格式的文件,但我需要知道我们如何过滤只删除2岁的文件。文件名为SFRE_BIL_SIT_20160812_134317_PAM_FILES1.zip 在进行过滤以删除2年前的文件时,我需要只关注文件的年份和月份部分进行删除,因为日期部分会发生变化。请在下面找到代码
transform
答案 0 :(得分:0)
如果您的文件以相同的方式命名 - 3部分代码然后是日期,所有文件都以_
分隔,您可以使用scan()
。您已经使用scan()
来检查扩展名为zip
的文件。您可以这样做,从文件名中提取日期部分,然后解析它并转换为数字。
member_name
的第四个字是YYYYMMDD部分:
datestring = scan(member_name,4,'_')
前4位是年份:
year = input(substr(datestring,1,4),best.)
然后是2个月的数字:
month = input(substr(datestring,5,2),best.)
最后2位数字(以防万一你需要一天):
day = input(substr(datestring,5,2),best.)
最后只与实际月份和年份进行比较:
if month = month(today()) and year = year(today()) then do;
*your code for deleting file;
end;
但是t只适用于给定的月份。要删除超过2年的文件,您可以执行以下操作。
已经拥有所有日期部分构建日期:
date = mdy(month, day, year)
然后将其与实际日期减去2年进行比较。要从今天起2年过去,请使用intnx()
函数
if intnx('year', today(), -2, 'S') > date do;
*your code for deleting file;
end;