私は以下のコードを試していますが、私はzip形式のファイルを削除することができましたが、年齢の古いファイル。ファイル名はSFRE_BIL_SIT_20160812_134317_PAM_FILES1.zip になります.2歳のファイルを削除するためのフィルタリングを行うと、その日の部分が変更されるため、削除するファイルの年月部分のみに集中する必要があります。あなたのファイルが同じように命名されている場合は、コード2年前の外部フォルダからzipファイルを削除するには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)
intnx()
機能を使用する必要があり、日付 'SFRE_BIL_SIT_YYYYMMDD'またはそれが変化する前に、それは常に3部品コードですか? なぜあなたは 'mopen'と' fread'をやっていますか? – fl0r3kそのコードは実行されますか?どのようにあなたが望むことをしないのですか? – Tom
はい前の日付は常に3部のコードで、日付はyyyymmddになります。ファイルが生成される月の日がわからないことがあるため、このフィールドからは年と月だけに集中できます。私が書いたコードは実行中ですが、すべてのzipファイルを削除しています。ディレクトリを開くためにusopを起動し、freadがファイルを読み込みます。今私はこのコードを変更する必要があります古い12ヶ月のファイルを削除する必要があります – Manesh