我提出下面的代碼期待看到SAS嘗試一個X命令的時間,而不是等待提交「退出」進入命令提示符的關閉:的解決方法,如SAS
options noxwait xsync;
data _null_;
x 'cd C:\Python33';
x 'start test.py';
run;
data _null_;
call system ('exit');
run;
data _null_;
x 'cd C:\Python33';
x 'start test.py';
run;
data _null_;
call system ('exit');
run;
data _null_;
x 'cd C:\Python33';
x 'start test.py';
run;
data _null_;
call system ('exit');
run;
data _null_;
x 'cd C:\Python33';
x 'start test.py';
run;
data _null_;
call system ('exit');
run;
data _null_;
x 'cd C:\Python33';
x 'start test.py';
run;
data _null_;
call system ('exit');
run;
取而代之的是代碼啓動每個按順序調用一些Python代碼的實例,但不會等待前一個實例完成。這是'noxwait xsync'組合的正確行爲嗎?
如果是這樣,我正在嘗試使用「呼叫系統('出口')的工作。如果你在xwait模式下運行代碼,你會得到兩個命令提示符窗口。一個是系統管理員窗口,另一個是調用代碼的窗口。
無論是否選擇noxwait或xwait,調用代碼的方法總是關閉。如果選擇了noxwait,所有窗口最終都會自行關閉。在xwait模式下,提交到'call system('exit')的命令行不會關閉管理員窗口。
有沒有辦法解決這個問題?我不能僅僅使用noxwait並且允許所有的命令提示符依次打開和關閉,因爲x命令在嵌套宏中,並且最終成千上萬個試圖同時執行的Python調用。
謝謝
順便說一句,在宏代碼中只有一個x命令提交的實例,而不是五個。我剛剛使用了多個來快速表明我的觀點。 – user3043997
首先,在開放代碼中使用'x',而不是'data_null_'步驟。你能證實這不是問題嗎? – Joe
對啊,對不起......認爲它需要在數據步驟中運行......我在開放代碼中運行它並沒有什麼區別。 – user3043997