如何運行腳本的一部分或根據條件包含腳本大家好,
我正在嘗試根據列上的條件運行腳本的一部分。 如果該條件失敗,則應執行腳本的其他部分或包含其他腳本。
這看起來很簡單,但我做不到。 我採用了兩種方法 - 使用“include”函數呼叫腳本和“Expr”函數呼叫部分程式碼。 沒有一個在工作。 這裡有什麼幫助嗎?
第一種方法 -
dt = Data Table( "Data" ) << If ( PRODUCT == "A", include("C:\....\Script1.jsl"), include("C:\....\Script2.jsl"), );
當腳本 1 和 2 獨立工作時,這不起作用。
第二種方法與第一種方法類似,但使用“Expr”,即 - 中提到的方式在 JSL 中對程式碼進行分段或分段
非常感謝,
自動化和腳本編寫回覆:如何運行腳本的一部分或根據條件包含腳本謝謝賈莫,
我學會了使用
Names Default To Here(1);
來自尼爾森( @tx尼爾森)幾年前我確實使用過它。 我將再次查看該指南。
感謝你們。
回覆:如何運行腳本的一部分或根據條件包含腳本時常發生。 如果您還沒有準備好,我建議您以以下方式開始所有腳本
Names Default To Here(1);
它將為您提供一些針對命名空間衝突的保護。 此連結對於 Names Default To Here(1) 非常有幫助(有多個頁面)腳本編寫指南 > 程式設計方法 > 進階作用域與命名空間 (jmp.com)
回覆:如何運行腳本的一部分或根據條件包含腳本你好@tx尼爾森和@jthi ,
實際上你的兩個代碼都工作正常(事實上,我自己的方式也工作)。 問題出在 JMP 會話。經過幾次嘗試後,我的 JMP 崩潰了,我放棄了。 今天重新啟動 JMP 後,相同的程式碼運作良好。 我相信 JMP 會話可能存在相同的記憶體/快取/路徑/變數問題。 一旦重新啟動,它就工作得很好。
我真的很感謝你們兩個的支持。
雷爾德,HSS
回覆:如何運行腳本的一部分或根據條件包含腳本我運行這段程式碼沒有錯誤
Names Default To Here( 1 );
b = 1;
If( b == 1,
Include( "path to one of the includes" ),
Include( "path to the second include" )
);
第一個包含程式碼是
a=1;
show(a);
第二個包含程式碼是:
a=2;
show(a);
它按預期工作
作為@jthi建議您可能需要提供有關包含內容的更多資訊。
回覆:如何運行腳本的一部分或根據條件包含腳本我認為我們可能需要更多關於您正在嘗試做什麼以及「外部」部分是什麼的資訊。 如果您只是執行某些程式碼的一部分,則 Include() 和表達式應該都能正常運作。
Names Default To Here(1);
exprA = Expr(Show("A"));
exprB = Expr(Show("B"));
PRODUCT = "B";
If(PRODUCT == "A",
exprA;
,
exprB;
);回覆:如何運行腳本的一部分或根據條件包含腳本嗨,納爾遜,
我也嘗試過。 這也是行不通的。
回覆:如何運行腳本的一部分或根據條件包含腳本我相信您遇到的問題是嘗試將 If() 語句傳遞到資料表。應該起作用的是
dt = Data Table( "Data" );
If ( PRODUCT == "A", include("C:\....\Script1.jsl"), include("C:\....\Script2.jsl"), );