我正在寻找一段代码,最好是独立于操作系统和基于宏的,用于删除文本文件(或任何文件)
问问题
10325 次
2 回答
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 需要是一个文件引用,因此如果您仅使用文件的实际物理位置作为参数,则需要两个步骤:
%macro file_Delete(file);
filename __a "&file.";
%put %sysfunc(fdelete(__a));
%mend file_delete;
于 2012-11-15T14:48:45.897 回答
2
我更进一步如下:
%macro fdel(file);
%let rc= %sysfunc(filename(fref,&file));
%let rc= %sysfunc(fdelete(&fref));
%mend;
这使它更加通用。谢谢乔!
于 2012-11-15T15:07:44.343 回答