SASのWORKの実際の場所に、異常終了した時の残り滓ファイルがたまるので大掃除する話

WORKライブラリに割り当てられた場所が実際PC上で、どこに存在するかについて、普段あまり意識しません。

ライブラリのパスを返すpathname関数や

data _NULL_;
X=pathname("WORK");
put X;
run;

optionss プロシジャを使って、WORKの実際の場所を割り出すことができます

proc options option=work;
run; 

環境によるかもですが、「SAS Temporary Files」というフォルダの下に
「_TD○○」といったフォルダがあり、そこがWORKに割り当てられていると思います
この「_TD○○」はSASを閉じると、フォルダごと消滅します。
またSASを立ち上げると、新たに「_TD○○」(○の部分は変わる)が作成されそこが
現セッションのWORKの実存パスになります。

普通にSASを立ち上げて、閉じていれば「SAS Temporary Files」の下には何もないのですが
異常終了するなどしてWORKの除去機能が正常に作動しなかった場合、「_TD○○」という過去の
一時フォルダが残ってしまうことがあります。

こいつらは只のゴミなのでばっさり消してしまって容量をあけた方がよいです。

以下はSASのFAQにあった同様の内容です。
http://www.sas.com/offices/asiapacific/japan/service/technical/faq/list/body/pc055.html



で、関連する荒業として、例えばグラフ等の画像ファイルをgifやpngなどで作成して、それをEXCELやWORDにDDEで貼りつけるプログラムを書く場合、いったん画像ファイルを作成する必要があるのですが、貼り付けが終わった後に画像はまとめて全部消したいと言った場合に、テンポラリーな画像の置き場としてWORKに割り当てられたフォルダをファイルの保存場所に使うという技です。
正常に終了すれば、いちいち画像を消すプログラムを書かなくても、WORKもろともフォルダごと葬られるからです。
「_TD○○」の中のファイルはSASが作ったものでなくても、ロックしてない限りいっしょくたに消されます。
まあSASの機能を逆手にとった外法に近いので、お勧めはしません。




1 件のコメント:

  1. いつも有難うございます。
    異常終了した場合、作成中のプログラムはどこかに残ってないでしょうか。残されたテンポラリフォルダにはデータセットは残されていますが・・・

    返信削除