使用SAS删除文本文件

All*_*owe 5 sas sas-macro

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

Joe*_*Joe 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;
Run Code Online (Sandbox Code Playgroud)

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

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

%put %sysfunc(fdelete(myfile));
Run Code Online (Sandbox Code Playgroud)

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

%macro file_Delete(file);
filename __a "&file.";
%put %sysfunc(fdelete(__a));
%mend file_delete;
Run Code Online (Sandbox Code Playgroud)