2016-05-17 14 views
1

はどのように確認することができないならば、それは次のようになり存在チェック> 0。 助けてくれてありがとうSASは、ディレクトリは、ディレクトリが存在する場合

+1

Googleが「ディレクトリが存在するかどうかを確認してください」と答えた場合、多くのオプションが返されます – Longfish

+0

既存のディレクトリではなく、私はいつもsyserr = 0を持っています。次に、私は情報が '操作の結果は の値がありませんに設定されています。 ' – aola

+1

なぜSYSERRといくつかの他のマクロ変数はありません? – Tom

答えて

2

SASにエラーをスローするよりクリーンな方法があるかもしれませんが、以下のことが私に役立ちました。一般的な考え方は、ディレクトリが存在する場合、syserrを0に設定したままにすることです。もしそうでなければ、あなたはエラーを投げる何かをする。フォルダは、フォルダが存在しない場合、これは0の値を返し、1の値は、フォルダが存在しない場合

%let does_it_exist=%sysfunc(fileexist(&dir)); 

存在する場合

%let your_path = "..."; 

%macro your_macro(dir); 

    %let rc = %sysfunc(filename(fileref, &dir.)); 

    %if %sysfunc(fexist(&fileref)) %then %do; 
     data _null_; 
      set _null_; 
     run; 
    %end; 
    %else %do; 
     data _null_; 
      set something_that_doesnt_exist; 
     run; 
    %end; 

    %put syserr = &syserr.; 

%mend your_macro; 

%your_macro(&your_path.); 
4

クリーナー方法チェックします。

+0

OPには、マクロ変数1だけでなく、syserr値1が必要です。 – superfluous

関連する問題