cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • JMP will suspend normal business operations for our Winter Holiday beginning on Wednesday, Dec. 24, 2025, at 5:00 p.m. ET (2:00 p.m. ET for JMP Accounts Receivable).
    Regular business hours will resume at 9:00 a.m. EST on Friday, Jan. 2, 2026.
  • We’re retiring the File Exchange at the end of this year. The JMP Marketplace is now your destination for add-ins and extensions.

Discussions

Solve problems, and share tips and tricks with other JMP users.
%3CLINGO-SUB%20id%3D%22lingo-sub-49539%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EJSL%20Identifiziert%20den%20Pfad%20des%20aktuell%20ausgef%C3%BChrten%20Skripts%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-49539%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EWenn%20ich%20ein%20Skript%20ausf%C3%BChre%20(entweder%20%C3%BCber%20das%20Skriptfenster%20oder%20durch%20Ausl%C3%B6sen%20%C3%BCber%20das%20Add-In)%2C%20m%C3%B6chte%20ich%20entweder%20(1)%20den%20Speicherort%20des%20Verzeichnisses%20abrufen%20k%C3%B6nnen%2C%20in%20dem%20sich%20das%20Skriptfenster%20befindet%2C%20oder%20(2)%20das%20abrufen%20ID%20des%20Add-Ins%2C%20das%20das%20Skript%20enth%C3%A4lt.%20JMP%20wei%C3%9F%20das%2C%20weil%20es%20das%20Skript%20%C3%B6ffnen%20musste%2C%20um%20mit%20der%20Ausf%C3%BChrung%20zu%20beginnen.%20Gibt%20es%20eine%20M%C3%B6glichkeit%2C%20dies%20zu%20tun%3F%3C%2FP%3E%3CP%3EIch%20wei%C3%9F%2C%20dass%20ich%20dies%20in%20einem%20Add-In-Kontext%20tun%20kann%2C%20indem%20ich%20%24ADDIN_HOME(id)%20verwende.%20Das%20Problem%20hierbei%20ist%2C%20dass%20ich%20ein%20gemeinsames%20Include%20habe%2C%20das%20ich%20in%20mehrere%20Add-Ins%20packe%2C%20und%20ich%20m%C3%B6chte%20die%20Datei%20lieber%20nicht%20f%C3%BCr%20jedes%20andere%20Add-In%20%C3%A4ndern%20m%C3%BCssen.%20Ich%20kann%20mir%20vorstellen%2C%20dass%20ich%20versehentlich%20eine%20Kopie%20des%20allgemeinen%20Include%20von%20Add-In%20Nr.%201%20zu%20Add-In%20Nr.%202%20erstellt%20und%20dabei%20vergessen%20habe%2C%20die%20ID%20im%20Include%20zu%20%C3%A4ndern%2C%20damit%20es%20den%20richtigen%20Pfad%20in%20Add-In%20Nr.%202%20verwendet.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-366774%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20JSL%20identifiziert%20den%20Pfad%20des%20aktuell%20ausgef%C3%BChrten%20Skripts%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-366774%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EEs%20gibt%20auch%20eine%20integrierte%20Funktion%20zum%20%C3%9Cbersetzen%20zwischen%20dem%20POSIX-%20und%20dem%20Windows-Pfadtrennzeichen%3A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22convert.PNG%22%20style%3D%22width%3A%20804px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22convert.PNG%22%20style%3D%22width%3A%20804px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22convert.PNG%22%20style%3D%22width%3A%20804px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F31146i849BD3AA734E8C49%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22convert.PNG%22%20alt%3D%22convert.PNG%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-237099%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20JSL%20identifiziert%20den%20Pfad%20des%20aktuell%20ausgef%C3%BChrten%20Skripts%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-237099%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EDanke%20Jeff%2C%20das%20ist%20gro%C3%9Fartig!%3CBR%20%2F%3E%3CBR%20%2F%3E%20Ich%20habe%20jedoch%20eine%20andere%20L%C3%B6sung%20gefunden%3A%20Ich%20habe%20mein%20Skript%20im%20selben%20Verzeichnis%20wie%20die%20aktuelle%20Datentabelle%20gespeichert%20und%20erhalte%20dann%20den%20Pfad%20meiner%20Datentabelle%3A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Edt%20%3D%20Current%20Data%20Table()%3B%0Apath%20%3D%20dt%26lt%3B%26lt%3B%20getpath%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CBR%20%2F%3EDer%20resultierende%20%E2%80%9EPfad%E2%80%9C%20ist%20mein%20Verzeichnispfad%20mit%20umgekehrten%20Schr%C3%A4gstrichen%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-236276%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20JSL%20identifiziert%20den%20Pfad%20des%20aktuell%20ausgef%C3%BChrten%20Skripts%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-236276%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EIch%20mag%20Jeffs%20L%C3%B6sung.%20Aber%20auch%20f%C3%BCr%20diesen%20Zweck%20gibt%20es%20eine%20eigene%20Utility-Funktion.%20Hier%20ist%20ein%20Beispiel%3A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3EConvert%20File%20Path(%20%22%24HOME%22%2C%20Windows%20)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EEs%20kann%20mehr%20als%20nur%20das%20Format%20von%20POSIX%20auf%20Windows%20%C3%A4ndern.%20Siehe%20Hilfe%20%26gt%3B%20Skriptindex%20%26gt%3B%20Funktionen%20%26gt%3B%20POSIX.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-236266%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20JSL%20identifiziert%20den%20Pfad%20des%20aktuell%20ausgef%C3%BChrten%20Skripts%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-236266%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EJMP%20und%20JSL%20k%C3%BCmmern%20sich%20nicht%20um%20die%20Ausrichtung%20der%20Schr%C3%A4gstriche.%20Sie%20werden%20so%20oder%20so%20funktionieren.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EWenn%20Sie%20die%20Pfadzeichenfolge%20au%C3%9Ferhalb%20von%20JMP%20verwenden%20m%C3%BCssen%2C%20k%C3%B6nnen%20Sie%20diese%20verwenden%3CA%20href%3D%22https%3A%2F%2Fwww.jmp.com%2Fsupport%2Fhelp%2F14-2%2Fsubstitute-and-substitute-into.shtml%22%20target%3D%22_self%22%20rel%3D%22noopener%20noreferrer%22%3E%20Ersetzen%20in()%3A%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Efoo%3D%22c%3A%2Fmy%20directory%2Fmy%20directory%2Fmy%20directory%22%3B%0A%0Asubstitute%20into(foo%2C%20%22%2F%22%2C%20%22%5C%22)%3B%0A%0Ashow(foo)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-236236%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20JSL%20identifiziert%20den%20Pfad%20des%20aktuell%20ausgef%C3%BChrten%20Skripts%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-236236%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EDie%20L%C3%B6sung%20funktioniert%20bei%20mir%20nicht%2C%20der%20resultierende%20Pfad%20ist%20mit%20Schr%C3%A4gstrichen%20%2F%2C%20ich%20brauche%20ihn%20mit%20R%C3%BCckw%C3%A4rtsschr%C3%A4gstrich%20%5C.%20Kennt%20jemand%20eine%20L%C3%B6sung%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-49577%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20JSL%20identifiziert%20den%20Pfad%20des%20aktuell%20ausgef%C3%BChrten%20Skripts%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-49577%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EDas%20Abrufen%20des%20Standardverzeichnisses%20in%20Kombination%20mit%20dem%20Auffinden%20der%20DEF-Datei%20h%C3%B6rt%20sich%20an%2C%20als%20w%C3%BCrde%20es%20funktionieren%2C%20scheint%20aber%20ein%20umst%C3%A4ndlicher%20Hack%20zu%20sein.Die%20Amortisation%20lohnt%20sich%20wahrscheinlich%20%E2%80%93%20ich%20habe%20eine%20Standard-Include-Datei%20f%C3%BCr%20alle%20meine%20Dateipfaddefinitionen%2C%20aber%20mit%20separaten%20Revisionen%20f%C3%BCr%20jedes%20Add-In%20(dh%20das%20gleiche%20Problem%2C%20das%20Sie%20beschreiben)%2C%20daher%20w%C3%A4re%20es%20%C3%A4u%C3%9Ferst%20n%C3%BCtzlich%2C%20die%20ID%20des%20%C3%BCbergeordneten%20Add-Ins%20dynamisch%20ermitteln%20zu%20k%C3%B6nnen%20Besonderheit.So%20sehr%2C%20dass%20der%20Hack%20langsam%20attraktiv%20klingt%20%E2%80%93%20ich%20hatte%20nicht%20daran%20gedacht%2C%20die%20DEF-Datei%20zu%20lesen%20...%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-49549%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20JSL%20identifiziert%20den%20Pfad%20des%20aktuell%20ausgef%C3%BChrten%20Skripts%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-49549%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3ENormalerweise%20verwende%20ich%20entweder%20die%20Funktion%20%E2%80%9EStandardverzeichnis%20abrufen%E2%80%9C%20oder%20die%20Funktion%20%E2%80%9EDateipfad%20konvertieren%E2%80%9C%20mit%20einer%20leeren%20Zeichenfolge%2C%20um%20den%20Pfad%20des%20aktuellen%20Skripts%20abzurufen.%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Epath1%20%3D%20Get%20Default%20Directory()%3B%0Apath2%20%3D%20Convert%20File%20Path(%20%22%22%20)%3B%0A%0AShow(%20path1%2C%20path2%20)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3EHier%20ist%20das%20Protokoll%2C%20wenn%20ich%20dieses%20Skript%20aus%20einer%20Datei%20ausf%C3%BChre%2C%20die%20sich%20in%20meinem%20Ordner%20%E2%80%9EC%3A%5CPublic%E2%80%9C%20befindet%3A%3C%2FP%3E%0A%3CPRE%3Epath1%20%3D%20%22%2FC%3A%2FPublic%2F%22%3B%0Apath2%20%3D%20%22%2FC%3A%2FPublic%2F%22%3B%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-49545%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20JSL%20identifiziert%20den%20Pfad%20des%20aktuell%20ausgef%C3%BChrten%20Skripts%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-49545%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EWenn%20ich%20den%20Namen%20%E2%80%9Ecom.cmpny.dept.addin1%E2%80%9C%20nicht%20bekomme%20und%20ich%20NICHT%20den%20allgemeinen%20Add-In-Ansatz%20verwende%2C%20den%20pmroz%20vorschl%C3%A4gt%2C%20reicht%20es%20aus%2C%20zu%20wissen%2C%20in%20welchem%20Ordner%20sich%20das%20Skript%20befand%2C%20da%20ich%20das%20Add-In%20%C3%B6ffnen%20kann%20.def%20aus%20demselben%20Ordner%20und%20extrahieren%20Sie%20die%20ID%20von%20dort.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EDies%20er%C3%B6ffnet%20mir%20tats%C3%A4chlich%20eine%20zweite%20m%C3%B6gliche%20Anwendung.%20Wenn%20ich%20in%20die%20Datei%20%E2%80%9Eaddin.def%E2%80%9C%20eines%20aktuell%20ausgef%C3%BChrten%20Add-Ins%20gelangen%20kann%20(aber%20im%20Moment%20scheint%20mir%20das%20nicht%20m%C3%B6glich%20zu%20sein)%2C%20k%C3%B6nnte%20ich%20eine%20Versionspr%C3%BCfung%20durchf%C3%BChren%2C%20indem%20ich%20die%20ID%20und%20die%20%E2%80%9EaddinVersion%E2%80%9C%20von%20%E2%80%9Eaddin.def%E2%80%9C%20erhalte%20und%20dann%20vergleiche%20das%20zu%20einer%20Liste%20der%20neuesten%20Add-In-Versionen%2C%20die%20ich%20mit%20Internet%20Open%20erhalten%20k%C3%B6nnte.%20Ich%20k%C3%B6nnte%20dann%20herausfinden%2C%20ob%20die%20lokale%20addinVersion%20des%20Benutzers%20die%20neueste%20und%20beste%20ist.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-49543%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20JSL%20identifiziert%20den%20Pfad%20des%20aktuell%20ausgef%C3%BChrten%20Skripts%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-49543%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EJa%2C%20aber%20ich%20m%C3%B6chte%20eine%20Zeile%20in%20General%20Functions.jsl%20einf%C3%BCgen%2C%20die%20angibt%2C%20welches%20andere%20Add-In%20eine%20Funktion%20in%20General%20Functions.jsl%20aufruft.%3C%2FP%3E%3CP%3EMit%20anderen%20Worten%3A%20In%20com.cmpny.dept.addin1%20k%C3%B6nnte%20ein%20Skript%20eine%20Funktion%20in%20General%20Functions.jsl%20aufrufen.%20Ich%20m%C3%B6chte%20auf%20eine%20Variable%20in%20General%20Functions.jsl%20verweisen%2C%20die%20zeigt%2C%20dass%20com.cmpny.dept.addin1%20sie%20aufgerufen%20hat.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-49541%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20JSL%20identifiziert%20den%20Pfad%20des%20aktuell%20ausgef%C3%BChrten%20Skripts%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-49541%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EWarum%20nicht%20die%20gemeinsame%20Include-Datei%20zu%20einem%20eigenen%20Add-In%20machen%3FAuf%20diese%20Weise%20k%C3%B6nnen%20Sie%20es%20beispielsweise%20%C3%BCber%20Folgendes%20einbinden%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%2F%2F%20Load%20functions%20common%20to%20various%20apps%0Ainclude(%22%24ADDIN_HOME(com.cmpny.dept.common)%5CGeneral%20Functions.jsl%22)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
mjoner
Level VI

JSL Identify Path of the Currently Running Script

When running a script (either from the script window or by triggering it from the add-in) I would like to be able to either (1) get at the location of the directory that the script window is in or (2) get the id of the add-in that contains the script. JMP knows this because it had to open the script to start executing this. Is there a way to do this?

I know I can do this in an add-in context by using $ADDIN_HOME(id). The issue here is I have a common include that I am packaging in multiple add-ins, and I'd rather not have to change the file for each different add-in. I can see myself accidentally making a copy of the common include from add-in #1 to add-in #2 and forgetting to change the id in the include so that it uses the right path in add-in #2.

10 REPLIES 10

Re: JSL Identify Path of the Currently Running Script

I like Jeff's solution. But there is a dedicated utility function, too, for this purpose. Here is an example:

 

Convert File Path( "$HOME", Windows );

 

It can do more than change the format from POSIX to Windows. See Help > Scripting Index > Functions > POSIX.

Recommended Articles