我喜欢使用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" $<
答案 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 $<