我想要一个命令来返回 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”
提出此要求的原因:
我有一个“common functions.jsl”脚本,我的许多脚本使用“Include”调用它。 它包含许多我不想将它们复制到我编写的每个新脚本中的常用用户函数。 我还喜欢与小组中的其他人分享我的脚本,以及“common 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"