現在実行しているプログラムのファイル名取得方法について

[OS] ALL
[リリース] SAS System 9以降
[キーワード] executing, program, file, SYSIN, SAS_EXECFILEPATH

[質問]

現在実行しているSASプログラムのファイル名を取得する方法はありますか。

[回答]

SASをバッチモードで実行している場合、SYSINオプションに実行ファイル名が格納されています。このオプションの値を参照することで、実現可能です。

また、SAS9から、DMSモードにてSAS_EXECFILEPATH環境変数内に、実行ファイル名が格納されるようになりました。DMSモードで使用している場合は、この環境変数の値を参照することで実現可能です。
※ SAS_EXECFILEPATH環境変数は、拡張エディタからプログラムを実行した場合にのみ参照可能です。

次の例では、SYSINオプションに指定されたファイルパスが無い場合に、%SYSGETマクロ関数を利用してSAS_EXECFILEPATH環境変数を取得するようにしています。

例:SAS_EXECFILEPATH環境変数の取得


  %LET execpath=" ";
  %MACRO setexecpath;
    %LET execpath=%SYSFUNC(GETOPTION(SYSIN));
    %IF %LENGTH(&execpath)=0
  %THEN %LET execpath=%SYSGET(SAS_EXECFILEPATH);
  %MEND setexecpath;

  %setexecpath;
  %PUT &execpath;