SAS没有env vars的宏替代

时间:2016-10-28 09:37:48

标签: sas

您好,我正在使用这些声明:

 %LET xls=Selectie_&datum._&hhmm.;
 PROC EXPORT DATA=work.selectie OUTFILE="&pad.\&xls..xlsx"
 DBMS=XLSX
 REPLACE
    ;
  newfile=yes;
  quit;

文件已创建正常:注意:“\ SRTZZAPP0274 \ SASData \ NNB \ MFT_Output \ Banksparen \ Selectie_20161028_1118.xlsx”文件已成功创建。

如此肥胖如此之好。 但是当我想使用这个macrovar时,我无法得到这个值。 !NNBankdata是一个环境变种。

 %put &pad;
 !NNBankData\MFT_Output\Banksparen

那怎么可能旋转!NNBankData也喜欢它在proc export中工作?

已创建

pad以读取具有此值的平面文件:     NNBankData \ MFT_Output \ Banksparen 并把它放在一个宏var:     CALL SYMPUTX('pad',TRIM(pad),'G');

2 个答案:

答案 0 :(得分:2)

如果文件名引用的第一个字符是感叹号(!),则SAS将尝试将第一个项目解析为环境变量。

正如用户667489所提到的,以下内容应该为您提供路径:

%put %sysget(pad);

此实例的一个例子:

data _null_;
  file "!temp\test.txt";
  put 'test';
run;

可在此SGF paper

中找到更多信息

答案 1 :(得分:0)

您应该使用%sysget函数来检索环境变量。