我正在运行这个简单的宏:
%macro grabpathname ;
%sysget(SAS_EXECFILEPATH)
%mend grabpathname;
%put %grabpathname;
我收到以下错误:
警告:宏函数 %SYSGET 的参数未定义为系统变量。
我正在使用 Enterprise Guide 5.1 我做错了什么?我需要这个,因为我想为我的程序使用相对路径。
我正在运行这个简单的宏:
%macro grabpathname ;
%sysget(SAS_EXECFILEPATH)
%mend grabpathname;
%put %grabpathname;
我收到以下错误:
警告:宏函数 %SYSGET 的参数未定义为系统变量。
我正在使用 Enterprise Guide 5.1 我做错了什么?我需要这个,因为我想为我的程序使用相对路径。
根据 [this note]( http://support.sas.com/kb/36/613.html,SAS_EXECFILEPATH
除了在 Windows 上的 SAS DM 会话中之外没有在任何地方定义。在 EG 中,您无权访问它。
我建议考虑一下您使用它的目的。如果您使用它来识别其他程序的存储位置,那么在 EG 中,您通常应该能够避免使用这种编码风格,而是将所有必要的程序合并到您的 EGP 中。如果您使用它来识别数据位置或输出位置,我建议编写 promts 或宏变量来定义它,并使用单个 EGP 来运行多个输入/输出,而不是将其复制到多个目录。
SAS Enterprise Guide 4.3 中添加的一项新功能是能够对外部文件进行相对引用。由于您使用的是 5.1,因此这也应该适用于您。
“在以前版本的 SAS Enterprise Guide 中,项目文件将外部文件引用存储为绝对路径。在 SAS Enterprise Guide 4.3 中,这些外部文件引用存储为相对路径,这使您可以更轻松地移动项目文件、数据、和程序到不同的文件夹或不同的机器。在 SAS Enterprise Guide 4.3 中,使用相对于项目文件当前位置的路径名,而不是使用完整路径。 -- SAS 企业指南:4.3 中的新功能
要为您的 Enterprise Guide 项目启用该功能: