Ich möchte, dass ein Befehl den Pfadnamen des JSL-Skripts zurückgibt. Wenn ich zum Beispiel ein Skript „/Users/John_Doe/Documents/JMP/JMP Scripts/myscript.jsl“ ausführe und einen Befehl wie diesen im Skript haben möchte:
thispath = Get Current Script Path(); <BR />Show(thispath);<BR />
Und ich möchte, dass Folgendes zurückgegeben wird: "/Users/John_Doe/Documents/JMP/JMP Scripts/myscript.jsl"
Der Grund für diese Anfrage:
Ich habe ein "common functions.jsl"-Skript, das viele meiner Skripte mit "Include" aufrufen. Es enthält viele häufig verwendete Benutzerfunktionen, die ich nicht in jedes neue Skript kopieren möchte, das ich schreibe. Ich teile meine Skripte auch gerne mit anderen in meiner Gruppe, zusammen mit "common functions.jsl". Ich kann verlangen, dass meine Gruppenmitglieder die Datei common functions.jsl an der gleichen Stelle relativ zur aufrufenden JSL ablegen (z. B. im gleichen Ordner oder übergeordneten Ordner), aber ich kann nicht kontrollieren, wie die Pfadnamen insgesamt aussehen. Wenn ich den Pfadnamen des aufrufenden Skripts hätte, könnte ich das leicht verwenden, um herauszufinden, wo "common function.jsl" ist (z. B. "/Users/John_Doe/Documents/JMP/JMP Scripts/common function.jsl").
Ich kann Get Default Directory() nicht verwenden. Ich habe festgestellt, dass dieser Befehl nur den Pfad der zuletzt geöffneten Datei mit dem Dialogfeld "Datei öffnen" zurückgibt. Dies funktioniert, wenn der Benutzer das Skript öffnet und sofort ausführt. Das Problem ist, wenn der Benutzer nach dem Öffnen von „myscript.jsl“ ein anderes Skript öffnet, dann aber versucht, „myscript.jsl“ auszuführen. In diesem Fall gibt Get Default Directory() den Pfad des anderen Skripts zurück, nicht "myscript.jsl". Außerdem wird Get Default Directory() nicht aktualisiert, wenn ein Skript aus der Liste der zuletzt verwendeten Dateien geöffnet wird.
Irgendwelche Vorschläge, oder gibt es sowas noch nicht? Danke für Ihre Hilfe.
Ich hätte gerne diese Funktion. Ist damit jemals etwas passiert?
Ich bin hängengeblieben bei:
curdir = Substr(Get Default Directory(), 2, 999);
Convert File Path( "", windows )|| (current window() << get window title) ||".jsl"