荫与下面的代码试图和我能够删除这是zip格式的文件,但我需要有2岁多的外部文件夹中删除的zip文件,以了解我们如何才可以过滤删除2年的文件。该文件的名称将是SFRE_BIL_SIT_20160812_134317_PAM_FILES1.zip 做过滤删除2岁fiIes我需要集中精力只有年份和月份部分的文件做删除,因为这一天的部分将被改变的时候。请找到下面的代码使用SAS
options mlogic;
%macro delete_all_zip_files_in_folder(folder);
filename filelist "&folder";
data _null_;
dir_id = dopen('filelist');
total_members = dnum(dir_id);
do i = 1 to total_members;
member_name = dread(dir_id,i);
if scan(lowcase(member_name),2,'.')='zip' then do;
file_id = mopen(dir_id,member_name,'i',0);
if file_id > 0 then do;
freadrc = fread(file_id);
rc = fclose(file_id);
rc = filename('delete',member_name,,,'filelist');
rc = fdelete('delete');
end;
rc = fclose(file_id);
end;
end;
rc = dclose(dir_id);
run;
%mend;
%delete_all_zip_files_in_folder(C:\Users\UCS1MKP\Desktop\test)
是否总是3部分代码之前日期'SFRE_BIL_SIT_YYYYMMDD'或者变化? 你为什么要做'mopen'和'fread'? – fl0r3k
该代码是否运行?它不怎么做你想要的? – Tom
是日期之前是始终3部分代码和日期将是yyyymmdd。它更好,我们可以只专注于这个领域的年份和月份,因为我们可能不知道一个月内哪些日子文件会生成。我写的代码正在运行,但它删除了所有的zip文件。打开usw打开目录,fread读取文件。现在我需要更改此代码这样一种方式,它应该删除的文件,这旧的12个月 – Manesh