1

この単純なマクロを実行しています:

%macro grabpathname ;
%sysget(SAS_EXECFILEPATH)
%mend grabpathname;
%put %grabpathname;

そして、次のエラーが表示されます。

警告: マクロ関数 %SYSGET の引数がシステム変数として定義されていません。

Enterprise Guide 5.1 を使用しています。何が間違っていますか? プログラムに相対パスを使用したいので、これが必要です。

4

2 に答える 2

1

[このメモ]( http://support.sas.com/kb/36/613.htmlによるSAS_EXECFILEPATHと、Windows 上の SAS の DM セッション以外のどこにも定義されていません。EG では、それにアクセスできません。

何に使うか考えた方がいいと思います。他のプログラムが保存されている場所を特定するために使用している場合、EG では通常、そのスタイルのコーディングを使用することを避け、代わりに必要なすべてのプログラムを EGP に組み込むことができます。データの場所または出力の場所を識別するために使用している場合は、それを定義するプロンプトまたはマクロ変数を作成し、複数のディレクトリにコピーするのではなく、単一の EGP で複数の入力/出力を実行することをお勧めします。

于 2014-07-14T16:33:29.793 に答える