Sas XWait和XSync行为不正确

Sas XWait和XSync行为不正确,sas,command-prompt,Sas,Command Prompt,我正在Windows Vista上运行SAS 9。我使用系统命令在一些嵌套宏中执行一些Python代码,这些宏每次都向Python传递不同的参数。Im在SAS中使用XSYNC和XWAIT选项 我的理解是,这两个选项应该使SAS暂停,直到Python脚本完成运行。使用此选项,当代码完成执行时,Python命令提示符窗口关闭,然后提示我键入EXIT,这是您所期望的 然而,当我使用NOXWAIT XSYNC时,SAS代码会通过每次Python调用,启动它并保持运行。几分钟后,我打开了数百个命令提示符窗

我正在Windows Vista上运行SAS 9。我使用系统命令在一些嵌套宏中执行一些Python代码,这些宏每次都向Python传递不同的参数。Im在SAS中使用XSYNC和XWAIT选项

我的理解是,这两个选项应该使SAS暂停,直到Python脚本完成运行。使用此选项,当代码完成执行时,Python命令提示符窗口关闭,然后提示我键入EXIT,这是您所期望的

然而,当我使用NOXWAIT XSYNC时,SAS代码会通过每次Python调用,启动它并保持运行。几分钟后,我打开了数百个命令提示符窗口,所有窗口都试图同时运行

我做错了什么?作为一种解决方法,我尝试使用x“EXIT”和call system(“EXIT”)关闭windows管理员命令提示符窗口,但这似乎没有传递到窗口,即使EXIT命令与调用Python代码的命令处于单独的数据空步骤中

有什么想法吗


下面是我正在使用的代码:

data _null_;
x 'cd C:\Python33';
x 'start test.py';
run;

data _null_;
call system ('exit');
run;

发生的情况是两个命令提示窗口打开。第二个是运行的Python脚本。这会自动关闭,剩下的是管理员窗口。我试过把x命令放在“退出”上;在第一个数据为空的步骤中,但这不起作用。

XSYNC告诉SAS同步执行外部命令,这意味着SAS将暂停,直到命令完成。您只能在非常特定的应用程序中使用NOXSYNC

XWAIT告诉SAS等待您显式退出运行该命令的窗口。在大多数情况下,您可能希望使用NOXWAIT

您描述的问题向我表明,您的Python命令没有正确终止。对不起,坚果,我不懂蟒蛇。但是考虑将Python语句放在一个脚本文件中,该脚本文件用一个退出命令关闭自己,或者向SAS调用中添加一个退出命令,类似于:

data _null_; 
   call system('python-command;exit');
run;
如果这没有帮助,请修改您的问题并显示您正在使用的完整SAS数据步骤代码。注意,使用第二个
X
命令推送“exit”语句将不起作用;它必须是初始调用的一部分