我正在寻找一个简单的解决方案,它将启用批处理SAS程序,它将直接从cmd运行,例如,"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文件-一个表示,另一个是程序(配置文件加载特定的数据集、全局变量等)。
有一个简单的解决方案,我如何能够自动化程序运行进程从cmd使用当前的文件结构。
其他考虑过的想法:我考虑创建新的(动态) sas文件batch.sas及其内容%inc "config.sas"; %inc "program.sas"
,其中"program.sas“是为每次运行提供的动态参数。
发布于 2016-12-01 16:32:54
如果我理解正确的话-你想在config.sas文件之前运行program.sas文件吗?您建议通过%inc
这样做是一个很好的建议,另一种方法是在启动时调用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开始。
发布于 2016-12-01 17:13:19
autoexec解决方案是一个合理的解决方案,但我认为,除非您总是(在运行的每个SAS程序/会话中)加载完全相同的配置,否则,最终正确的方法就是c
程序几十年来使用头文件所做的事情。
如果您有一个加载特定程序的数据集的config.sas
,该程序应该在顶部包含%include config.sas
。然后你就把程序分批处理。
https://stackoverflow.com/questions/40915652
复制相似问题