5

テキストファイル(またはそれに関する任意のファイル)を削除するための、できればOSに依存せず、マクロベースのコードを探しています

4

2 に答える 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;

複数のOSで動作するという点で、本質的にOSに依存しません。ファイル参照名は OS に依存するため、真の独立性を持つことはできませんが、それを引数として指定しても問題にはなりません。

マクロとして、SYSFUNC ブロックで FDELETE を使用します。

%put %sysfunc(fdelete(myfile));

ただし、 myfile はファイル参照名である必要があるため、ファイルの実際の物理的な場所のみを引数として使用している場合は、次の 2 つの手順が必要になります。

%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 に答える