具有特殊字符的宏变量解析

时间:2018-09-14 13:49:12

标签: macros sas

我试图传递由Call symputx创建的具有特殊字符(下划线)的宏变量,但是无法成功,这是我编写的代码。

data _null_; 
    call symputx('name', scan( "&table" ,2,'.')); run; 

%let location= E:\drives\Monthly; 

Proc export data=file
outfile= "&location.\&name..txt"  dbms=dlm replace; 
run;

当NAME宏变量没有特殊字符时,代码将完美执行,但是会显示身份验证失败或无法解析宏或任何其他错误。

我想掩盖特殊字符,我该怎么办?

所以这是详细信息:(从@Richard的评论中添加)

%let location=%nrstr(E:\Reports\Monthly\Updates (NEW)_UPPDATE_LIST);
%let Name = %nrstr(Table_20);
Proc export dbms=dlm 
  data=Newfile 
  replace
  outfile= "&location=.\&Name..txt" ;
run;

当我在表名中使用下划线时,会出现此错误

ERROR: Insufficient authorization to access
E:\Reports\Monthly\Updates (NEW)_UPPDATE_LIST

我将不得不添加的一件事是我正在使用%include语句来运行程序。

1 个答案:

答案 0 :(得分:0)

我想这个问题与目录许可有关。请参阅目录权限以确保您具有访问权限。