使用SAS删除文本文件

时间:2012-11-15 14:39:13

标签: sas sas-macro

我正在寻找一段代码,最好是独立于操作系统和基于宏的代码,用于删除文本文件(或任何文件)

2 个答案:

答案 0 :(得分:10)

来自SAS文档:

data _null_;
    fname="tempfile";
    rc=filename(fname,"physical-filename");
    if rc = 0 and fexist(fname) then
       rc=fdelete(fname);
    rc=filename(fname);
run;

它基本上与操作系统无关,因为它可以在多个操作系统上运行。你不可能拥有真正的独立性,因为fileref将依赖于操作系统,但是如果你指定它作为一个参数它应该不是一个问题。

作为宏,您可以在SYSFUNC块中使用FDELETE:

%put %sysfunc(fdelete(myfile));

但是,myfile需要是一个fileref,所以如果你只使用文件的实际物理位置作为参数,你需要两个步骤:

%macro file_Delete(file);
filename __a "&file.";
%put %sysfunc(fdelete(__a));
%mend file_delete;

答案 1 :(得分:2)

我进一步采取了以下措施:

%macro fdel(file);
  %let rc= %sysfunc(filename(fref,&file));
  %let rc= %sysfunc(fdelete(&fref));
%mend;

这使它更具通用性。谢谢乔!