Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SAS删除文本文件_Sas_Sas Macro - Fatal编程技术网

使用SAS删除文本文件

使用SAS删除文本文件,sas,sas-macro,Sas,Sas Macro,我正在寻找一段代码,最好是独立于操作系统且基于宏的代码,用于从SAS文档中删除文本文件(或任何相关文件): data _null_; fname="tempfile"; rc=filename(fname,"physical-filename"); if rc = 0 and fexist(fname) then rc=fdelete(fname); rc=filename(fname); run; 它本质上是独立于操作系统的,因为它可以在多个操作

我正在寻找一段代码,最好是独立于操作系统且基于宏的代码,用于从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;

我进一步采取了以下步骤:

%macro fdel(file);
  %let rc= %sysfunc(filename(fref,&file));
  %let rc= %sysfunc(fdelete(&fref));
%mend;
这使它有点多功能。谢谢你,乔