批量运行SAS时处理警告

时间:2016-10-25 19:31:42

标签: makefile sas

我喜欢使用Makefile,所以我经常从命令行批量运行SAS程序。如果遇到任何警告,SAS将返回非零状态1,如果出现错误,则返回非零状态2或更高。

这意味着即使只有警告,也会出现错误。我可以强制Makefile忽略非零状态,但它也会忽略实际错误。

如果我得到2或更大的非零状态,但是如果我的非零状态为1,我将如何编写一个Makefile以使其出错?

例如:

myOutput.sas7bdat: myProgram.sas
   "path/to/sas.exe" $<
## ignore errors
myOutput.sas7bdat: myProgram.sas
   -"path/to/sas.exe" $<

1 个答案:

答案 0 :(得分:1)

如果您的make版本支持{(1 + 4 for Windows),您可以使用.ONESHELL

.ONESHELL:
myOutput.sas7bdat: myProgram.sas
    "path/to/sas.exe" $<
    if %ERRORLEVEL% gtr 1 exit /b 1

或者您可以将这两行包装成批处理文件(将$<替换为文件中的%1

myOutput.sas7bdat: myProgram.sas
    whatever.cmd $<