SAS%sysget(SAS#u EXECFILEPATH)不';不存在

SAS%sysget(SAS#u EXECFILEPATH)不';不存在,sas,sas-macro,enterprise-guide,Sas,Sas Macro,Enterprise Guide,我正在运行这个简单的宏: %macro grabpathname ; %sysget(SAS_EXECFILEPATH) %mend grabpathname; %put %grabpathname; 我得到了以下错误: 警告:宏函数%SYSGET的参数未定义为 系统变量 我使用的是企业指南5.1 我做错了什么?我需要这个,因为我想为我的程序使用相对路径。根据[本说明](,SAS\u EXECFILEPATH不是在任何地方定义的,而是在Windows上SAS的DM会话中定义的。例如,您无权访问

我正在运行这个简单的宏:

%macro grabpathname ;
%sysget(SAS_EXECFILEPATH)
%mend grabpathname;
%put %grabpathname;
我得到了以下错误:

警告:宏函数%SYSGET的参数未定义为 系统变量

我使用的是企业指南5.1 我做错了什么?我需要这个,因为我想为我的程序使用相对路径。

根据[本说明](,
SAS\u EXECFILEPATH
不是在任何地方定义的,而是在Windows上SAS的DM会话中定义的。例如,您无权访问它


我建议您考虑一下使用它的目的。如果您使用它来确定其他程序存储在哪里,在EG中,您通常应该能够避免使用这种类型的编码,而是将所有必要的程序合并到您的EGP中。如果您使用它来确定数据位置或输出位置,我建议编写promts or宏变量来定义它,并使用一个EGP来运行多个输入/输出,而不是将其复制到多个目录。

SAS Enterprise Guide 4.3中添加的新功能之一是能够相对引用外部文件。由于您使用的是5.1,这也应该适用于您

"在早期版本的《SAS Enterprise Guide》中,项目文件将外部文件引用存储为绝对路径。在《SAS Enterprise Guide 4.3》中,这些外部文件引用存储为相对路径,这使您更容易将项目文件、数据和程序移动到不同的文件夹或不同的计算机。在《SAS Enterprise Guide》中4.3,使用相对于项目文件当前位置的路径名,而不是使用完整路径。” --

要启用企业指南项目的功能,请执行以下操作:

  • 打开项目
  • 文件|项目属性|文件引用
  • 选中“为程序和可导入文件使用相对于项目的路径”框

  • 不过,这仅适用于SAS程序,而不适用于excel文件或您希望在SAS中读取的任何其他类型的文件