JSLスクリプトのパス名を返すコマンドが欲しいです。 たとえば、スクリプト「/Users/John_Doe/Documents/JMP/JMP Scripts/myscript.jsl」を実行し、スクリプト内に次のようなコマンドを入れたい場合:
thispath = Get Current Script Path(); <BR />Show(thispath);<BR />
「/Users/John_Doe/Documents/JMP/JMP Scripts/myscript.jsl」を返すようにします。
このリクエストの理由:
多くのスクリプトが「インクルード」を使用して呼び出す「共通の functions.jsl」スクリプトがあります。 これには、頻繁に使用する多くのユーザー関数が含まれており、私が作成する新しいスクリプトごとにコピーしたくありません。 また、「共通の functions.jsl」とともに、自分のスクリプトをグループ内の他のユーザーと共有することも好きです。 グループ メンバーが共通の functions.jsl を呼び出し元の JSL と同じ場所 (同じフォルダーまたは親フォルダーなど) に配置するように要求できますが、全体的なパス名を制御することはできません。 呼び出しスクリプトのパス名があれば、それを使って「common function.jsl」がどこにあるかを簡単に特定できます (例: 「/Users/John_Doe/Documents/JMP/JMP Scripts/common function.jsl」)。
Get Default Directory() を使用できません。 このコマンドは、[ファイルを開く] ダイアログを使用して開いた最新のファイルのパスのみを返すことがわかりました。 これは、ユーザーがスクリプトを開いてすぐに実行した場合に機能します。 問題は、ユーザーが「myscript.jsl」を開いた後に別のスクリプトを開いてから、「myscript.jsl」を実行しようとした場合です。 この場合、Get Default Directory() は、「myscript.jsl」ではなく、他のスクリプトのパスを返します。 また、[最近使用したファイル] リストからスクリプトを開いた場合、Get Default Directory() は更新されません。
何か提案はありますか、それともまだ存在しないものですか? ご協力いただきありがとうございます。
この機能が欲しいのですが、これで何か起こったことはありますか?
私は立ち往生しています:
curdir = Substr(Get Default Directory(), 2, 999);
Convert File Path( "", windows )|| (current window() << get window title) ||".jsl"