我正在寻找一种简单的解决方案,可以批量生成直接从cmd运行的SAS程序,例如:
"C:\Program Files\SASHome2\SASFoundation\9.4\sas.exe" -CONFIG "C:\Program Files\SASHome2\SASFoundation\9.4\nls\en\sasv9.cfg" -sysin "C:\Users\Documents\sas\Run_Program.sas" -LOG "C:\Users\Documents\sas\f2.log"
然而问题是我有两个SAS文件 - 一个代表 config ,第二个是程序(配置文件加载特定数据集,全局变量等...)。
是否有一个简单的解决方案如何使用当前文件结构从cmd自动执行程序运行过程。
其他考虑过的想法:
我考虑用它的内容%inc "config.sas"; %inc "program.sas"
创建新的(动态)sas文件batch.sas,其中" program.sas"是为每次运行提供的动态参数。
答案 0 :(得分:1)
如果我理解正确 - 你想在program.sas文件之前运行config.sas文件?您通过%inc
这样做的建议很好,另一种方法是在启动时使用它作为autoexec调用config.sas文件,例如如下:
"C:\Program Files\SASHome2\SASFoundation\9.4\sas.exe"
-CONFIG "C:\Program Files\SASHome2\SASFoundation\9.4\nls\en\sasv9.cfg"
-sysin "C:\Users\Documents\sas\Run_Program.sas"
-LOG "C:\Users\Documents\sas\f2.log"
-autoexec "C:\Users\Documents\sas\config.sas"
初始化SAS会话时,autoexec文件运行一次。如果需要,您的config.sas文件可以通过调用任何相关/现有的autoexec来开始。
答案 1 :(得分:1)
autoexec解决方案是一个合理的解决方案,但我认为,除非你总是(在你运行的每个SAS程序/会话中)加载完全相同的配置,最终正确的方式这与c
程序使用头文件几十年来一样。
如果您有config.sas
加载特定程序的数据集,该程序应在顶部包含%include config.sas
。然后你只需批量程序。