建议在脚本中核心命令之前要对参数个数,参数内容做一些判断,比如参数是否全有,sas文件是否存在,然后当检查通过后,再执行核心起调命令。Windows和Shell写法会有些区别,但都有相应的命令或处理代码段解决。
起调命令主要是有几部分组成,本文以Windows举例,linux可以进行相应的改写,
"%SAS_HOME%\sas" -sysin %HOME_DIR%\src\%1.sas -log "%HOME_DIR%\log\%1.log.%d%.%2" -print %HOME_DIR%\lst\%1.lst -sysin if required in your operating environment, names the batch program 就是指向你的sas文件 -log log日志文件 默认log文件是replace模式,如果需要对log进行配置修改,见下面的log配置说明 -print lst结果文件 -work yourtempworkpath
当计算的中间结果非常大的时候,一定要指向一个可用空间较大的目录,否则会报错Error:对“******”的写入失败。文件已满,并可能损坏。
-logparm open=append
open方式有三种
OPEN=APPEND appends the SAS log content to the existing SAS log OPEN=REPLACE replaces the existing SAS log OPEN=REPLACEOLD replace the existing SAS log if it is older than 24 hours
写日志有两种方式
通过缓存log内容,log是定期地被提交写入而不是每次写入,这样sas能够更有效率地执行。
-LOGPARM WRITE=IMMEDIATE
WRITE=IMMEDIATE
for the log content to be written as it is produced and set WRITE=BUFFERED
WRITE=BUFFERED
for the log content to be written when the buffer is full.
滚动模式有7种
ROLLOVER=AUTO|NONE|SESSION | n | nG | nM | nG
这个顾名思义吧
-logparm "rollover=auto" -logparm "rollover=session" -logparm "rollover=none" n |nK |nM |nG
代表文件尺寸达到所给数字n|nK|nM|nG时,会生成新的log文件