使用SPSS语法

时间:2016-02-08 17:32:59

标签: spss

我正在使用一个批处理文件来调用运行许多语法文件的SPSS生产作业。

在语法文件中,我希望能够检查一些变量,如果不满足某些条件,那么我想停止生产作业,退出SPSS并将错误代码返回到批处理文件。

批处理文件需要根据返回的错误代码停止运行下一个命令。我知道如何在批处理文件中执行此操作。

最基本的解决方案可能是如果错误代码不是0则停止,并且错误文本将从语法中输出到单独的文本文件。奖金将是一个不同的错误代码,然后我可以匹配到抛出代码的语法中的位置。

在SPSS语法和/或生产文件中实现此目的的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

执行此操作的一种方法是将Statistics作为外部模式Python作业执行。然后,您可以询问任何结果,捕获异常,并设置退出代码和消息,但是,您喜欢。这是一个例子:

jobs.py:

Python作业

import sys
sys.path.append(R""" C:/ spss23 /蟒/ LIB /站点包""")
import spss

尝试:
    spss.Submit(""" INSERT FILE =" c:/temp/syntax1.sps"。""") 除了:
    print" syntax1.spss失败"     出口(代码= 1)

尝试:
    spss.Submit(""" INSERT FILE =" c:/temp/syntax2.sps"。""")
除了:
    print" syntax1.spss失败"
    退出(代码= 2)

然后bat文件会执行 python c:/myjobs/jobs.py
打印%ERRORLEVEL%

或类似的。该作业需要使用OMS或shell重定向以适当的格式保存输出。 (try和except之后的块应该缩进。)

答案 1 :(得分:0)

在外部模式下,您可以使用这样的代码,也可以在查看器中查询项目。

import spss, spssdata

curs = spssdata.Spssdata("variable2")  
for case in curs:  
    if case[0] == 6:  
        exit(99)  
curs.CClose