我有两个不同的SAS平台,我在每个平台上运行一个宏来创建一个报告。
我用
%include "&MACRO_Path.";
我想要的是创建一个自动变量" MACRO_PATH"其中包含文件位置。因此,当我启动SAS会话时,我不需要在该MACRO_PATH变量中定义文件位置。
我知道一种方法是我可以在包含代码行的位置创建自动可执行文件,但只是想知道我是否可以创建自动宏变量。 我也知道自动宏变量是由宏处理器创建的。
但是有什么工作吗?
答案 0 :(得分:4)
如果您只有两台主机,并且您知道它们是哪台,那么您可以使用SYSSCP或SYSHOSTNAME。例如,如果一个是Windows主机而另一个是unix主机,则可以执行此操作。
%let macro_path=%sysfunc(ifc(&sysscp=WIN,c:\mymacros,~/mymacros));
答案 1 :(得分:0)
如果您正在使用企业指南,则可以使用Autoexec流程在项目级别执行此操作。命名一个流程" Autoexec"并选择在打开项目时自动运行该流程的选项。
我通常对我所拥有的项目(比如Dev,Test和Prod环境)所做的是在项目目录中存储未在版本控制中同步的链接文件(需要启用相对文件路径)文件参考下的项目属性)。它包含特定于环境的宏变量的值。
然后,该快捷方式存储在autoexec流程中。项目本身是版本控制的,所以当我将我的dev更改与test或prod同步时,它具有正确的本地引用。