シベリア鉄道旅行記 更新中です。

SASmacroでファイルフルパスからパスだけ残す

タイトルの通り。Windows想定。
マクロで書くの手こずったのでメモ。

/*例えば「C:Users\hogehoge\file\something.txt」があったら、
「C:Users\hogehoge\file\」を取得。*/
%macro getPathFromFullPath(&filepath);
  %let path = %substr(&filepath,1,%eval(%index(&filepath, %scan(&filepath, -1, '\'))-1));
%mend;

データステップならこれで書ける。

data _null_;
  b= substr(&filepath,1,index(&filepath,scan( &filepath, -1, "\")));
run;

FCMPで書いたほうが良さそうかな。